美元符号("$")不是一个功能

Ilj*_*lja 4 javascript jquery

我不确定为什么我会收到这个错误,但由于某种原因,jQuery $没有被识别?

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

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

}); /* END WIDNOW LOAD */
Run Code Online (Sandbox Code Playgroud)

注意:更改$jQuery修复问题(所以我确定jQuery被正确引用,使用版本2.1.4),但我想继续使用$语义.

Jer*_*oen 8

您正在覆盖$函数内的变量,因为您有一个具有相同名称的参数.

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

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

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

}); /* END WIDNOW LOAD */
Run Code Online (Sandbox Code Playgroud)

可以使用参数传递给处理函数load.我建议和Anik Islam Abhi的回答一样:使用另一个名字作为论点.例如eeventArgs.

请注意,您(或其他登陆此处的人)可能实际上正在尝试使用一种模式,该模式确保在某个范围内jQuery可用$(例如,因为可能与$在全局范围内声明的另一个库发生冲突).如果是这种情况,我建议采取以下措施:

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

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

    }); /* END WIDNOW LOAD */
}(jQuery));
Run Code Online (Sandbox Code Playgroud)

这将把你的所有代码包装在一个函数中,该函数jQuery在作为参数传入时立即执行.因为$是该函数的参数的名称,所以您肯定知道它$等于jQuery该函数范围内的全局.