这是多余的吗?
jQuery(document).ready(function($} {
//stuff
}(jQuery));
这很丑陋而且过于冗长:
(function($) { $(document).ready(function() {
//stuff
})})(jQuery);
我需要什么:
dom准备就绪后,几乎整个脚本都会运行。将.ready()嵌入到不同行的匿名函数中并不理想,因为几乎整个文件最终都会被双重标签化。
最好的方法是什么?
答案 0 :(得分:2)
jQuery already passes a reference to itself to the ready callback,所以只需
jQuery(document).ready(function ($) {
//stuff
});
// or shorter
jQuery(function ($) {
//stuff
});
顺便说一下,这个
jQuery(document).ready(function ($) {
//stuff
}(jQuery));
甚至会出错。它立即调用匿名函数,以jQuery
作为参数,然后将返回值传递给jQuery(document).ready()
。
答案 1 :(得分:2)
对此:
(function($) { $(document).ready(function() {
//stuff
})})(jQuery);
这基本上包含了jQuery's
函数的document-ready
版本:
$(document).ready(function() {
//stuff
});
IIFE
:
(function($) {
// on-ready-function
}(jQuery));
如果您需要另外封装变量等,这可能很有用。
但我通常这样做:
$(function() {
//stuff
});
并且没有任何问题(在我10年的职业生涯中)。
要注意的一件事是始终将脚本放在正文的末尾。