$().ready()和$(document).ready()之间有区别吗?

use*_*867 27 jquery

我见过一些代码,他们只是这样做:

$().ready(function()
{
    ...
});
Run Code Online (Sandbox Code Playgroud)

这比做文档选择器短但是它是一样的吗?

Nic*_*ver 32

轻微变化:

$(document).ready(function() {});
Run Code Online (Sandbox Code Playgroud)

等于:

$(function() {});
Run Code Online (Sandbox Code Playgroud)

从jQuery 1.4开始: 在所有情况下都$().ready(function() { });不再正常工作.从发行说明:

从jQuery 1.4开始,如果你没有将参数传递给jQuery()方法,将返回一个空的jQuery集.在以前的jQuery版本中,将返回包含文档节点的集合.


nic*_*ckf 8

尼克和贾斯汀在这里得到了正确的答案,但既然我们正在谈论这个主题,我建议从不$在全球范围内使用便携性.一些太多的库将它用于自己的目的,如果你需要混合它们,你可能会遇到兼容性问题.相反,您可以将可选的第一个参数用于jQuery ready处理程序:

jQuery(function($) {

});
Run Code Online (Sandbox Code Playgroud)

这设置为该函数范围$的引用jQuery.

  • 是的,直到它没有明确的jQuery为基础.它可以输入6个额外的字符,并且可以为您的代码提供面向未来的功能.此外,它实际上可能使代码运行速度稍快,因为`$`引用在本地范围内. (5认同)

Jus*_*ier 7

根据jQuery API文档,以下所有三种语法都是等效的:

  • $(document).ready(handler)
  • $().ready(handler) (但不建议这样做)
  • $(handler)

显然语法会起作用,但不是推荐的语法.

根据jQuery 1.4发行说明:

在jQuery 1.3中,jQuery()返回了一个只包含文档的jQuery集.在jQuery 1.4中,它返回一个空的jQuery集.这对于创建空集并动态添加元素非常有用.注意:jQuery().ready()技术仍然适用于1.4,但已被弃用.请使用jQuery(document).ready()或jQuery(function(){}).