在jQuery中说文档的不同方式?
这些都是相同的,即说准备文件的方式:
$(function() { // });
和
$(function($) { // })(jQuery);
或者两者之间是否存在差异,如果是,那么何时应该使用哪个?
第一个是.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 });
他们俩都不一样。
第一个代码块用于在文档就绪时执行函数,当我们想要立即执行代码块而不等待加载其余代码时,使用第二个代码块。 但是在代码的第二部分中存在一些错误。 它应该如下。
(function($) { // })(jQuery);
这个是不正确的:
$(function($) { // })(jQuery);
您将函数传递给$(...)
,然后调用结果。 但是, $(...)
的结果是一个jQuery对象,它不是一个函数。 你可能会这样看得更好:
$( function($) { // } ) (jQuery);
通常, document.ready
有三个版本,它们彼此相同:
$(function() {...}); $(document).ready(function() {...}); $().ready(function() {...});