TypeError:$在调用jQuery函数时不是函数

我在一个WordPress插件中有一个简单的jQuery脚本,它使用如下的jQuery包装器:

$(document).ready(function(){

    // jQuery code is in here

});

我从WordPress Dashboard中调用此脚本,并在加载jQuery框架后加载它。

当我检查Firebug中的页面时,我经常收到错误信息:

TypeError:$不是函数

$(文件)。就绪(函数(){

我是否应该用这个函数包装脚本:

(function($){

    // jQuery code is in here

})(jQuery);

我有这个错误不少次,我不知道如何处理它。

任何帮助将不胜感激。


默认情况下,当您在Wordpress中入队jQuery时,您必须使用jQuery ,并且不使用$ (这是为了与其他库兼容)。

你用function包装它的解决方案可以正常工作,或者你可以用其他方式加载jQuery(但在Wordpress中这可能不是个好主意)。

如果你必须使用document.ready ,你实际上可以将$传入函数调用:

jQuery(function ($) { ...

这应该解决它:

jQuery(document).ready(function($){
  //you can now use $ as your jQuery object.
  var body = $( 'body' );
});

简而言之,WordPress会在你可以运行之前运行自己的脚本,并且它们释放$ var,这样它就不会与其他库发生冲突。 这是完全合理的,因为WordPress用于各种网站,应用程序,当然还有博客。

从他们的文档:

包含在WordPress中的jQuery库设置为noConflict()模式(请参阅wp-includes / js / jquery / jquery.js)。 这是为了防止WordPress可以链接的其他JavaScript库的兼容性问题。

在noConflict()模式下,jQuery的全局$快捷方式不可用...


你可以避免这样的冲突

var jq=jQuery.noConflict();
jq(document).ready(function(){  
  alert("Hi this will not conflict now");
  jq('selector').show();
});
链接地址: http://www.djcxy.com/p/63191.html

上一篇: TypeError: $ is not a function when calling jQuery function

下一篇: Socket.io Client for Appcelerator (Titanium Application iOS)