jQuery就绪函数别名

时间:2010-11-09 23:30:28

标签: jquery alias document-ready

我对创建新jQuery对象的所有不同方法感到困惑。

相关文档似乎是:   http://api.jquery.com/ready/   http://api.jquery.com/jQuery/

从这两个文档中,以下内容都是等效的(除了别名或没有别名'$'):

  • $(文件)。就绪(处理程序)
  • $()。就绪(处理程序)
  • $(处理程序)
  • jQuery(function($){});
  • jQuery(document).ready(function($){});

这是对的吗?我错过了吗?

3 个答案:

答案 0 :(得分:4)

这些有点等同:

  • $(document).ready(handler) - 在加载DOM时调整handler
  • $().ready(handler) - 在加载DOM时运行handler已弃用,请勿使用)
  • $(handler) - 运行handler然后加载DOM - $(document).ready(handler)的快捷方式
  • jQuery(function($) {})与上面#3相同,仅使用jQuery代替$别名
  • jQuery(document).ready(function($) {}) - 与第一个相同,再次使用jQuery代替$别名

如果将$定义为其他内容,例如原型,然后前3个将无法正常工作。最后两个类似,他们只是接受传入的第一个参数(jQuery对象)并将其$放入其中,即使$是其他内容也可以这样做:

jQuery(function($) {
  $("input").val("something");
});

答案 1 :(得分:3)

嗯,还有另一个。来自文档:

  

还有    $(document).bind(“ready”,handler)。   这与准备好的情况类似   方法,但有一个例外:如果   准备好的事件已经解雇了你   尝试.bind(“准备好”)绑定   处理程序不会被执行。

其他初始化方法将始终运行...因此您可能会发现自己在许多文件中声明$(document).ready(function() { //stuff },并且处理程序始终运行。

我经常使用jQuery(document).ready(function($) {})$(document).ready(function() {}) ...我发现它们更具可读性。

另一种方法是在关闭正文标记之前调用脚本,并在其中执行类似的操作

(function($) {
    //stuff
})(jQuery);

如果您需要避免使用$与其他库发生冲突。这是一个自动执行的匿名函数,它允许您在其范围内使用别名,而不必担心来自其他库的冲突。

答案 2 :(得分:0)

如果您只使用jQuery,那么$()等同于jQuery()。所以这涵盖了其中的一半。

然后,如果你使用$()而不是$(document).ready,那些是相同的。在这种情况下,它只是一个辅助函数。例如,您可能希望在其他内容上添加就绪,在这种情况下,您可以执行以下操作:$(foo).load({})

最后,我不知道你对$()的意思。准备就绪,因为你必须传递一个参数。