我在一个WordPress插件中有一个简单的jQuery脚本,它使用如下的jQuery包装器:
$(document).ready(function(){
// jQuery code is in here
});
我从WordPress仪表板中调用此脚本,并在加载jQuery框架后加载它。
当我在Firebug中检查页面时,我不断地收到错误消息:
TypeError:$不是函数
$(文档)函数(.ready(){
我是否应该将脚本包装在此函数中:
(function($){
// jQuery code is in here
})(jQuery);
我已经遇到这个错误好几次了,我不确定如何处理它。
任何帮助都将不胜感激。
发布于 2012-09-10 07:10:39
默认情况下,当你在Wordpress中加入jQuery时,你必须使用jQuery
,而不使用$
(这是为了与其他库兼容)。
将其包装在function
中的解决方案将工作得很好,或者您可以通过其他方式加载jQuery (但在Wordpress中这可能不是一个好主意)。
如果必须使用document.ready
,实际上可以将$
传递到函数调用中:
jQuery(function ($) { ...
发布于 2012-09-10 07:09:49
这应该可以解决这个问题:
jQuery(document).ready(function($){
//you can now use $ as your jQuery object.
var body = $( 'body' );
});
简而言之,WordPress会在你之前运行他们自己的脚本,他们会释放$
变量,这样它就不会与其他库发生冲突。这是完全有道理的,因为WordPress被用于所有类型的网站、应用程序,当然还有博客。
从他们的文档中:
包含在WordPress中的jQuery库被设置为noConflict()模式(参见wp-
/js/jquery/jquery.js)。这是为了防止与WordPress可以链接的其他JavaScript库的兼容性问题。
在noConflict()模式下,jQuery的全局$快捷方式不可用...
发布于 2014-11-09 01:21:38
这个解决方案对我很有效
;(function($){
// your code
})(jQuery);
将代码移动到闭包内部,使用$
而不是jQuery
...after搜索过多
https://stackoverflow.com/questions/12343714
复制相似问题