Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 美元符号($)不是函数_Javascript_Jquery - Fatal编程技术网

Javascript 美元符号($)不是函数

Javascript 美元符号($)不是函数,javascript,jquery,Javascript,Jquery,我不确定为什么会出现这个错误,但是由于某种原因jQuery的$没有被识别 jQuery(window).load(function ($) { 'use strict'; /* Preloader */ $(".status").fadeOut(); $(".preloader").delay(1000).fadeOut("slow"); }); /* END WIDNOW LOAD */ 注意:将$更改为jQuery可以解决这个问题(因此我确信jQuery

我不确定为什么会出现这个错误,但是由于某种原因jQuery的
$
没有被识别

jQuery(window).load(function ($) {
    'use strict';

    /* Preloader */
    $(".status").fadeOut();
    $(".preloader").delay(1000).fadeOut("slow");

}); /* END WIDNOW LOAD */

注意:将
$
更改为
jQuery
可以解决这个问题(因此我确信jQuery被正确引用,我使用的是2.1.4版),但是我想继续使用
$
作为语义。

您正在覆盖函数中的
$
变量,因为您有一个同名参数

删除
$
参数,
$
将再次引用全局范围的参数,等于
jQuery

jQuery(window).load(function () {
    'use strict';

    /* Preloader */
    $(".status").fadeOut();
    $(".preloader").delay(1000).fadeOut("slow");

}); /* END WIDNOW LOAD */
您可以为传递到
load
中的处理程序函数使用参数。我的建议与之相同:使用另一个名称作为论点。例如
e
eventArgs

请注意,您(或在此处登录的其他人)可能实际上正在尝试使用一种模式,以确保
jQuery
在特定范围内作为
$
可用(例如,因为可能与在全局范围内声明
$
的另一个库存在冲突)。如果是这样的话,我建议如下:

(function($) {
    $(window).load(function () {
        'use strict';

        /* Preloader */
        $(".status").fadeOut();
        $(".preloader").delay(1000).fadeOut("slow");

    }); /* END WIDNOW LOAD */
}(jQuery));

这将把您的所有代码包装在一个函数中,该函数作为一个参数传入
jQuery
后立即执行。因为
$
是该函数参数的名称,所以您可以确定
$
等于该函数范围内的全局
jQuery

您正在用$

像这样试试

jQuery(window).load(function (e) {
    'use strict';

    /* Preloader */
    $(".status").fadeOut();
    $(".preloader").delay(1000).fadeOut("slow");

}); /* END WIDNOW LOAD */

也许你想要那样的东西

jQuery(document).ready(function ($) {
    'use strict';

    /* Preloader */
    $(".status").fadeOut();
    $(".preloader").delay(1000).fadeOut("slow");

}); /* END WIDNOW LOAD */

您的参数是
$
重命名您的参数,问题已解决。幸福的生活将继续。
$
是一件大事。您可以将其传递给ready方法,但不能传递给load方法。例如,在wordpress
jQuery(document.ready)(函数($){…})中处理
$
这是一个副本,我相信可能是Ya的副本,我认为这是OP正在寻找的,在ready handler中处理$to引用jQueryjQuery@A.Wolff说得好。可能是OP或其他人正在寻找一种模式,以确保
$
引用
jQuery
,我添加了一个脚注/第二部分,其中包含一些代码来处理这种情况。值得称赞的是,我指出了IIFE包装器,它在函数开始执行时将
jQuery
绑定到
$