在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() {...});