无法摆脱“未捕获的TypeError:对象[对象全局]的属性'$'不是函数”

时间:2013-01-13 18:57:31

标签: javascript jquery

我已经阅读了所有处理我同样问题但没有成功的帖子。

我创建了一个脚本来加载带有jQuery的页面片段,该脚本在只有jQuery引用的测试页面中工作正常。 当我将代码嵌入到wordpress主题中时,使用相同的jQuery版本,一切都停止了。

因此,我得到了不同的结果,即我的脚本引用嵌入的位置。

  • 如果代码位于页面的最后,则无法正常运行 到.noConflict()的效果;在其他地方叫。

  • 使用$ = jQuery.noConflict()重新启动对象$;不 工作;我没有在控制台中收到错误,但代码不起作用 预期

  • 在jQuery引用之前加载脚本引用 产生标题中的错误。

我对我得到的结果感到困惑,我想知道是否有人可以解释我在哪里弄错了。

1 个答案:

答案 0 :(得分:0)

Wordpress在嵌入jQuery之后自动调用jQuery.noConflict(),因此它不会与使用$的其他框架冲突。它实际上意味着不再可能使用$的jQuery了。

有两种可能的解决方案:

  1. 使用jQuery代替$,例如:

    jQuery(function() {
        jQuery('a').click(function() {
            // ... more code ...
            // Just replace all $s with jQuery
        });
    });
    
  2. 使用IIFE在本地重新启用$

    (function($) {
        // All your code goes here, $ will work as usual
    })(jQuery);