$(document).ready(function()VS $(function(){

时间:2010-08-20 06:01:45

标签: javascript jquery jquery-ui

  

可能重复:
  what is difference of $(function(){ }); and $(document).ready(function() { }) ;?

$(document).ready(function(){})$(function(){})之间有何区别? 我应该以{{1​​}}形式还是以新的$方式撰写?

如果我加载谷歌api是jQuery(document).ready(function(){ })更好的方法吗?还是一样的?

我也看到人们使用google.setOnLoadCallback(function() {

有人可以帮助我,我迷路了。当我不知道我写的代码时,我就烦我。我想我应该读一下图书馆。这些都被定义为同一个东西吗?

3 个答案:

答案 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