这两者是否相同,即说准备文件的方式:
$(function() {
//
});
和
$(function($) {
//
})(jQuery);
或两者之间是否存在差异,如果是,那么何时应该使用哪个?
答案 0 :(得分:9)
第一个是.ready()
的快捷方式。
当你试图调用一个不可调用的对象时,第二个就是无效。
你可能意味着这个:
// v--------no $ at the beginning
(function( $ ) {
// simply a new lexical environment with a
// local $ parameter pointing to jQuery
})(jQuery);
......虽然它与DOM准备无关。
第一个例子中有一个变体,它将两者结合起来:
jQuery(function( $ ) {
// DOM ready, and creates a local $ parameter pointing to jQuery
});
答案 1 :(得分:1)
他们两个都不一样。
第一个代码块用于在文档就绪时执行函数,当我们想要立即执行代码块而不等待加载其余代码时,使用第二个代码块。但是在代码的第二部分中存在一些错误。它应该如下。
(function($) {
//
})(jQuery);
答案 2 :(得分:0)
这个不正确:
$(function($) {
//
})(jQuery);
您正在将函数传递给$(...)
,然后调用结果。但是,$(...)
的结果是一个jQuery对象,它不是一个函数。你可能会这样看得更好:
$(
function($) {
//
}
)
(jQuery);
通常,document.ready
有三个版本,它们彼此相同:
$(function() {...});
$(document).ready(function() {...});
$().ready(function() {...});