[英]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的回答一樣 :使用另一個名字作為論點。 例如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 */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.