这两个陈述之间有什么区别吗?
$(document).ready(function() {
// Code
});
$(function() {
// Code
});
答案 0 :(得分:6)
在决议中,没有区别,它们是等价的
来自相关的源代码
jQuery = window.jQuery = window.$ = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
}
jQuery.fn = jQuery.prototype = {
init: function( selector, context ) {
/* .... irrelevant code.... */
// HANDLE: $(function)
// Shortcut for document ready
else if ( jQuery.isFunction( selector ) )
return jQuery( document ).ready( selector );
}
}
答案 1 :(得分:1)
如果你的意思是
$(document).ready(function() {/* code here */});
和
$(function() {/* code here */});
然后两者没有区别。后者只是一种与前者相同的捷径。
答案 2 :(得分:1)
对于所有意图和目的,这两个陈述都做同样的事情。然而,在内部,第二个将调用第一个。
答案 3 :(得分:1)
我认为重要的是要指出官方jQuery行是第二种语法:
$(function() {
// code here
});
是首选。为什么?因为它提供了Resig先生和他的可能性。公司将提出一种出色的新方式来执行负载初始化,这比使用“就绪”事件更好。如果他们这样做,并且您使用更简单的(第二种)做事方式,那么您的代码将立即从改进中受益,而无需任何改变。如果您使用显式绑定到“就绪”事件,那么在您更改之前,您将坚持使用该方法。
答案 4 :(得分:0)
你的意思是:
$(function ()
{
/* ... */
});
它们在jQuery中是等效的。后者是前者的简写。