关于jquery:TypeError:’undefined’不是函数(评估’$(document)’)

TypeError: 'undefined' is not a function (evaluating '$(document)')

  • 我正在使用WordPress网站。
  • 我在头文件中包含了这个脚本。
  • 加载脚本时,我收到此错误:

    TypeError: 'undefined' is not a function (evaluating '$(document)')

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

    在萤火虫中,我得到了这个:

    $ is not a function


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

    1
    jQuery(document);

    代替

    1
    $(document);

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

    1
    2
    3
    (function ($) {
       $(document);
    }(jQuery));


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

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

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

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


    用这个:

    1
    var $ =jQuery.noConflict();

    我只在Chrome上遇到此问题。

    我尝试添加

    1
    var $ =jQuery.noConflict();

    就在打电话之前

    1
    $(document).ready(function () {

    有效。

    非常感谢


    试试这个片段:

    1
    2
    3
    jQuery(function($) {
      // Your code.
    })

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


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


    我会用这个

    1
    2
    3
    (function ($) {
       $(document);
    }(jQuery));


    1
    2
    3
     ;(function($){
            // your code
        })(jQuery);

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


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

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

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

    这段代码的作用是通过应用jquery将'$'注册为函数的变量。否则,默认情况下.js文件仅作为javascript读取。


    你可以在函数中传递$()

    1
    2
    3
    4
    5
    jQuery(document).ready(function($){

    // jQuery code is in here

    });

    或者您可以用jQuery(document);替换$(document);

    或者您可以使用jQuery.noConflict()

    1
    2
    3
    4
    var jq=jQuery.noConflict();
    jq(document).ready(function(){  
      jq('selector').show();
    });

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

    1
    2
    3
    4
    jQuery( document ).ready(function( $ ) {
      // jQuery(document)
      // $(document)
    });


    在这之间包装所有脚本...

    1
    2
    3
    4
        $.noConflict();
        jQuery( document ).ready(function( $ ) {
          // Code that uses jQuery's $ can follow here.
        });

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


    两件事情:

  • 确保在$(文档)之前添加了jQuery库。
  • 然后只需使用:jQuery更改所有"$",就像之前的注释一样。

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