使用(document).ready和jQuery(function($))有什么区别?

时间:2012-11-28 17:59:30

标签: javascript jquery html

  

可能重复:
  What is the difference between these jQuery ready functions?

我一直用:

$(document).ready(function (){
    //Code goes here
});

并在其中插入我的jQuery / JavaScript代码(以便在运行任何代码之前等待html页面完全加载)。

最近,我看到了这个:

jQuery(function($){
    //Code goes here
});

我已经搜索了这里的区别(主要是'jQuery'部分是什么)。

我的问题:

  • 后一个代码块的jQuery部分有什么作用?
  • 为该功能做什么'($)'参数?
  • 我的两个代码块示例之间是否存在差异(除了让页面等待加载)?

4 个答案:

答案 0 :(得分:3)

主要区别在于$变量周围的闭包。第一个代码段假定$变量尚未发布(使用.noConflict()或者您正在使用的另一个库也使用$但不使用jQuery变量。

第二个实现更安全,因为它不做任何假设,但允许您的内部代码通过使其成为参数来安全地使用$变量。

答案 1 :(得分:2)

这是一回事:

使用jQuery(function(){})只是$(document).ready(function (){});

的简写

注意:您可以使用$jQuery

答案 2 :(得分:1)

他们是一样的。 From the documentation

JQuery Call back (jQuery( callback ))
  

“此函数的行为与$(document).ready()类似,因为它应该用于在页面上包含依赖于DOM准备就绪的其他$()操作。虽然这个函数在技术上是可链接的,对它进行链接确实没什么用处。“

答案 3 :(得分:0)

它们几乎相同。

在第二个函数中,您将jQuery$传入函数。 $jQuery的缩写。

直接从jQuery库代码中调用$()

// tests to see if you passed in a function
} else if (jQuery.isFunction(selector)) { 
    // adds the function to be called when jQuery fires the ready event
    return rootjQuery.ready(selector); 
}

评论是我的。