$(document).ready(function() VS $(function() [重复]
Posted
技术标签:
【中文标题】$(document).ready(function() VS $(function() [重复]【英文标题】:$(document).ready(function() VS $(function() [duplicate]$(document).ready(function() VS $(function() [重复] 【发布时间】:2011-04-01 12:10:04 【问题描述】:可能重复:what is difference of $(function() ); and $(document).ready(function() ) ;?
$(document).ready(function())
与 $(function())
有什么区别
我应该写成$
形式还是新的jQuery(document).ready(function() )
方式?
如果我加载了 google api,google.setOnLoadCallback(function()
是更好的方法吗?还是一样的?
我还看到人们使用$(function($))
谁能帮帮我,我迷路了。当我不知道我写的代码时,我会烦我。我想我应该通读图书馆。都被定义为同一个东西吗?
【问题讨论】:
一模一样,***.com/questions/2662778/… 【参考方案1】:这两种方式是等价的,我个人更喜欢第二种方式,$(function() );
只是一个shortcut 用于准备文档。
关于new jQuery(document)...
构造,您实际上不需要使用new
运算符,如果您不使用,jQuery 将在内部使用它。
ready
处理函数接收的参数是 jQuery 对象本身。
这在你必须在与其他库的兼容模式下运行 jQuery 时非常有用,例如:
jQuery(function ($)
// use $ here
);
回调中的 $
参数将引用 jQuery 对象,在该函数之外它可能引用另一个库,如 PrototypeJS。
【讨论】:
我认为他的意思是“新方式”JQuery(文档)...... 从 jQuery 3.0 开始,只推荐使用$(function() )
语法;其他语法仍然有效,但已被弃用。见api.jquery.com/ready【参考方案2】:
$(document).ready(function() );
$(function() );
这两个语句实际上是完全相同的。所以第二次调用只是第一次调用的捷径。
$
符号再次只是jQuery
的快捷方式。如果您已将 jQuery 加载到您的网站中,则可以同时使用这两者。特别是如果您不加载其他 JS 库,这些库也可能使用 $
符号。这将我们带到您提到的
(function($)
(jQuery));
打电话。这里所做的是确保在您创建的函数表达式中,$
符号引用了jQuery
对象。您正在调用该匿名函数(以 $ 作为参数)并传入 jQuery
对象。
【讨论】:
【参考方案3】:我鼓励阅读一些对理解 jQuery(当然还有 javascript)非常有用的文章,这些文章解释了如何创建一个 jQuery 插件,但是阅读它你会理解一些基本和重要的东西,比如闭包女巫是这个的意思 (function($)(jQuery));声明。
http://www.authenticsociety.com/blog/jQueryPluginTutorial_Beginner
【讨论】:
以上是关于$(document).ready(function() VS $(function() [重复]的主要内容,如果未能解决你的问题,请参考以下文章