[英]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.