jQuery中$(document).ready(...)和$(function(){})之间有什么区别?

时间:2012-06-05 09:27:41

标签: jquery

有什么区别:

$(document).ready(function() {// Do something});

$(function() {//Do something});

在jQuery中?

4 个答案:

答案 0 :(得分:4)

如果我简单地尝试,那么它们是别名。它们是等价的。

注意

$(document).ready(function() {

})


$().ready(function() {
  // this is not recommended
}) 

$(function() {

});

一切都一样。


更多

jQuery开发人员建议使用:

$(document).ready(function() {

});

为什么$().ready()不建议参见Why "$().ready(handler)" is not recommended?

答案 1 :(得分:3)

没有。

来自jQ API:

  

以下所有三种语法都是等效的:

 $(document).ready(handler)
 $().ready(handler) (this is not recommended)
 $(handler)

http://api.jquery.com/ready/

答案 2 :(得分:3)

$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)

是等价的。

实际上,你可以在任何 jQuery对象上调用.ready(handler),无论它包含什么,它都会做同样的事情:

ready: function( fn ) {
    // Attach the listeners
    jQuery.bindReady();

    // Add the callback
    readyList.add( fn );

    return this;
},

答案 3 :(得分:2)

它们是相同的(意味着它们做同样的事情)。从doc

中查看这些行
All three of the following syntaxes are equivalent:

$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)

实际上$(handler)$(document).ready(handler)的硬编码快捷方式。在这里的源代码http://code.jquery.com/jquery.js中,如果您搜索rootjQuery,您很快就会找到这些行

// HANDLE: $(function)
        // Shortcut for document ready
        } else if ( jQuery.isFunction( selector ) ) {
            return rootjQuery.ready( selector );
        }

或者点击此链接https://github.com/jquery/jquery/blob/37ffb29d37129293523bf1deacf3609a28b0ceec/src/core.js#L174查找

表示如果传递的selector是一个函数,那么它将被用作$(document).ready(处理程序。

http://api.jquery.com/ready/

同时检查Which JQuery document.ready is better?