簡體   English   中英

美元符號(“$”)不是一個功能

[英]Dollar sign (“$”) is not a function

我不確定為什么我會收到這個錯誤,但由於某種原因,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的處理函數。 我建議和Anik Islam Abhi的回答一樣 :使用另一個名字作為論點。 例如eeventArgs

請注意,您(或其他登陸此處)可能實際上正在嘗試使用一種模式,以確保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 */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM