可能重复:
what is difference of $(function(){ }); and $(document).ready(function() { }) ;?
$(document).ready(function(){})
与$(function(){})
之间有何区别?
我应该以{{1}}形式还是以新的$
方式撰写?
如果我加载谷歌api是jQuery(document).ready(function(){ })
更好的方法吗?还是一样的?
我也看到人们使用google.setOnLoadCallback(function() {
有人可以帮助我,我迷路了。当我不知道我写的代码时,我就烦我。我想我应该读一下图书馆。这些都被定义为同一个东西吗?
答案 0 :(得分:90)
这两种方式是等价的,我个人更喜欢第二种方式,$(function() {});
只需shortcut即可准备文档。
关于new jQuery(document)...
构造,您实际上不需要使用new
运算符,如果不这样做,jQuery将在内部使用它。
ready
处理程序函数接收的参数是jQuery对象本身。
在必须在兼容模式下与其他库运行jQuery时,这非常有用,例如:
jQuery(function ($) {
// use $ here
});
回调中的$
参数将引用jQuery对象,在该函数之外它可能引用另一个库,如PrototypeJS。
答案 1 :(得分:27)
$(document).ready(function() {});
$(function() {});
这两个陈述实际上完全相同。所以第二个电话只是第一个电话的快捷方式。
$
符号再次只是jQuery
的快捷方式。如果您已将jQuery加载到您的网站中,则可以同时使用它们。特别是如果你不加载其他JS库,也可能使用$
符号。这将我们带到你提到的
(function($){
}(jQuery));
呼叫。这里要做的是确保在您创建的函数表达式中$
符号引用jQuery
对象。您正在调用该匿名函数(其中包含$作为参数)并传递jQuery
对象。
答案 2 :(得分:2)
我鼓励阅读一些非常有用的文章来理解jQuery中的某些东西(当然还有javascript),这篇文章解释了如何创建一个jQuery插件,但阅读它你会理解一些基本和重要的东西,比如闭包巫婆就是这个意思(function($){}(jQuery));言。
http://www.authenticsociety.com/blog/jQueryPluginTutorial_Beginner