$(function(){}); 和 $("document").ready(function(){}); 是相同的吗?

5

我一直在享受Lynda.com的Jquery Essential Training,我注意到在开始时,讲师使用了:

    Fig. 1

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

然而,在某些时候他开始使用以下内容:
    Fig. 2

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

从他的话中可以听出来,它们似乎完全是同义词(一些固有的jquery简写?),但据我所知,从未明确提到过。
我相信有人可以很快为我澄清这一点。我找到了这个,但我认为那个问题略有不同——我理解在文档准备好后调用函数与在全局范围内调用函数的概念;(这些函数也有名称。)
讲师使用幻影函数(我认为这是没有名称的函数的术语),在输入图2时,他说:“所以这将在文档准备就绪时执行……”

继续学习,如果你遇到任何好东西,请告诉我们。 - kobe
4
非幻影函数。匿名函数! - JustcallmeDrago
哈哈哈,在最后一章中,他触及了我的问题! - jlmakes
2个回答

8

是的,它们完全相同,只是别名。

来自jQuery官网:

All three of the following syntaxes are equivalent:

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

1

默认上下文是文档,因此如果传入一些随机的无意义字符串而不引用HTML节点,则会是文档。

$('fdsljkfdslj').context 是文档。由于默认上下文是文档,这意味着您不必指定它,只需将函数提供给jQuery,$(function() { });

我认为您的意思是使用 $(document),因为指定字符串 document 不太受欢迎,因为 document 将真正的文档对象传递给 jQuery。但同样,这与不传递任何东西或传递无意义的字符串相同,因为我们直接传递了 document


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接