Are $(function(){}); and $(“document”).ready(funct

2020-02-07 03:02发布

I've been enjoying Lynda.com's Jquery Essential Training, and I've noticed that in the beginning the instructor uses:

    Fig. 1

    $("document").ready(function(){
    fun stuff goes here
    });

However, somewhere along the line he starts using:

    Fig. 2

    $(function(){
    fun stuff goes here
    });

From the way he speaks, it sounds as if they are completely synonymous (some inherent jquery shorthand?) but as far as I can tell, it's never explicitly touched upon.

I'm sure someone could clear this up quickly for me. I found this but I believe that question is slightly different--I understand the concept of calling a function on document ready versus one that is globally available; (those functions also have names.)

The instructor uses phantom functions (I think that was the term for a function without a name,) and when typing out Fig. 2, he says "So this will be on document ready..."

2条回答
Lonely孤独者°
2楼-- · 2020-02-07 03:22

Yes, they are exactly the same, just aliases.

From the jQuery site:

All three of the following syntaxes are equivalent:

$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)
查看更多
家丑人穷心不美
3楼-- · 2020-02-07 03:23

The default context is the document, so if you pass in some random mumbo jumbo string that does not reference an HTML node, it will be the document.

$('fdsljkfdslj').context is document. And because the default context is the document, this means you don't have to specify it and can just feed a function to jQuery, $(function() { });

And I think you mean $(document) instead, since specifying the string document isn't as popular, because document passes the real document object to jQuery. But again, this will be the same as passing nothing or mumbo jumbo string since we pass document literally.

查看更多
登录 后发表回答