TypeError:'undefined'不是函数(评估'$(document)')

时间:2011-11-02 02:11:33

标签: jquery wordpress

  1. 我正在使用WordPress网站。
  2. 我将此脚本包含在标题中。
  3. 当脚本加载时,我收到此错误:

      

    TypeError:'undefined'不是函数(评估'$(document)')

    我不知道是什么导致了它或它甚至意味着什么。

    在萤火虫中,我明白了:

      

    $不是函数

14 个答案:

答案 0 :(得分:239)

Wordpress默认使用noConflict模式下的jQuery。您需要使用jQuery作为变量名称来引用它,而不是$,例如使用

jQuery(document);

而不是

$(document);

您可以轻松地将其包装在自执行函数中,以便$再次引用jQuery(并避免污染全局命名空间),例如。

(function ($) {
   $(document);
}(jQuery));

答案 1 :(得分:24)

使用jQuery的noConflict。它给我带来了奇迹

var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
    example('span#resultado').text("Hello, dude!");
    });
});

也就是说,假设您在HTML上包含了jQuery

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

答案 2 :(得分:15)

使用此:

var $ =jQuery.noConflict();

答案 3 :(得分:11)

试试这个代码段:

jQuery(function($) {
  // Your code.
})

它对我有用,也许它对你也有帮助。

答案 4 :(得分:11)

我仅在Chrome上遇到此问题。

我尝试添加

var $ =jQuery.noConflict();

在致电之前

$(document).ready(function () {

有效。

非常感谢

答案 5 :(得分:6)

同时检查是否包含jQuery,然后是一些组件/其他库(如jQuery UI),然后再次意外地包含jQuery - 这将重新定义jQuery并将组件助手(如.datepicker)从实例中删除。

答案 6 :(得分:4)

 ;(function($){
        // your code
    })(jQuery);

将你的js代码放在上面的闭包中,它应该解决问题。

答案 7 :(得分:4)

我会用这个

(function ($) {
   $(document);
}(jQuery));

答案 8 :(得分:2)

我在Web开发载体中也经常遇到这样的问题。实际上它不是JS冲突,当我们将html网站加载到浏览器时我们没有遇到这样的错误,但是当我们通过localhost加载这些类型的网站时我们面临这样的问题。这是因为localhost。当我们通过localhost加载脚本时,它会扫描脚本并呈现输出。但是当我们没有使用localhost时。它只是扫描输出。例如,当我们编写php代码时,将localhost放在没有主机的情况下运行,我们会收到错误。但是如果代码是正确的并且通过主机运行,我们得到实际输出,当我们使用inspect元素时,我们得到HTMl格式的输出代码,但不是PHP格式,这是因为代码的渲染。

这是渲染错误。因此,要修复这些jquery代码错误,解决方案之一可能就是使用此方法。

jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});

此代码的作用是注册&#39; $&#39;通过应用jquery作为函数的变量。否则,默认情况下,.js文件仅作为javascript读取。

答案 9 :(得分:1)

当我在页面标题中包含jQuery时,我也遇到了这个问题,没有意识到主机已经自动将它包含在页面中。因此,请实时加载页面并检查源代码以查看是否链接了jQuery。

答案 10 :(得分:1)

两件事:

  1. 确保在$(文档)之前添加了jQuery库。
  2. 然后只需更改所有&#34; $&#34; with:jQuery,如前所述。

答案 11 :(得分:1)

将所有脚本包装在此...

之间
<script>
    $.noConflict();
    jQuery( document ).ready(function( $ ) {
      // Code that uses jQuery's $ can follow here.
    });
</script>

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果您需要在jQuery旁边使用另一个JavaScript库,请通过调用$.noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。

答案 12 :(得分:1)

您可以在下面的代码段中同时使用jQuery和$。它对我有用

jQuery( document ).ready(function( $ ) {
  // jQuery(document)
  // $(document)
});

答案 13 :(得分:1)

你可以在函数()

中传递$
$(document);

或者您可以使用此jQuery(document);

替换jQuery.noConflict()

或者您可以使用var jq=jQuery.noConflict(); jq(document).ready(function(){ jq('selector').show(); });

{{1}}