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

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

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

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

轻微变化:

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

等于:

 $(function() {}); 

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

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

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

 jQuery(function($) { }); 

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

根据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(){})。