首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Wordpress如何使用jquery和$ sign

Wordpress如何使用jquery和$ sign
EN

Stack Overflow用户
提问于 2012-09-10 07:05:07
回答 16查看 630K关注 0票数 250

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

代码语言:javascript
复制
$(document).ready(function(){

    // jQuery code is in here

});

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

当我在Firebug中检查页面时,我不断地收到错误消息:

TypeError:$不是函数

$(文档)函数(.ready(){

我是否应该将脚本包装在此函数中:

代码语言:javascript
复制
(function($){

    // jQuery code is in here

})(jQuery);

我已经遇到这个错误好几次了,我不确定如何处理它。

任何帮助都将不胜感激。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2012-09-10 07:10:39

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

将其包装在function中的解决方案将工作得很好,或者您可以通过其他方式加载jQuery (但在Wordpress中这可能不是一个好主意)。

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

代码语言:javascript
复制
jQuery(function ($) { ...
票数 360
EN

Stack Overflow用户

发布于 2012-09-10 07:09:49

这应该可以解决这个问题:

代码语言:javascript
复制
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的全局$快捷方式不可用...

票数 173
EN

Stack Overflow用户

发布于 2014-11-09 01:21:38

这个解决方案对我很有效

代码语言:javascript
复制
;(function($){
    // your code
})(jQuery);

将代码移动到闭包内部,使用$而不是jQuery

我在https://magento.stackexchange.com/questions/33348/uncaught-typeerror-undefined-is-not-a-function-when-using-a-jquery-plugin-in-ma中找到了上面的解决方案

...after搜索过多

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12343714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档