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

时间:2010-03-05 02:35:52

标签: jquery

我见过一些他们刚才这样做的代码:

$().ready(function()
{
    ...
});

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

3 个答案:

答案 0 :(得分:31)

轻微改变:

$(document).ready(function() {});

等于:

$(function() {});

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

  

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

答案 1 :(得分:8)

尼克和贾斯汀在这里得到了正确的答案,但由于我们正在讨论这个话题,我建议可移植性永远不要在全局范围内使用$。一些太多的库将它用于自己的目的,如果你需要混合它们,你可能会遇到兼容性问题。相反,您可以将可选的第一个参数用于jQuery就绪处理程序:

jQuery(function($) {

});

这会将$设置为对该函数范围中jQuery的引用。

答案 2 :(得分:7)

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

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

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

根据jQuery 1.4 Release Notes

  

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