我对创建新 jQuery 对象的所有不同方法有点困惑。
相关文档似乎是: http://api.jquery.com/ready/ http://api.jquery.com/jQuery/
从这两个文档中,以下都是等效的(除了别名或不别名'$'):
- $(文档).ready(处理程序)
- $().ready(处理程序)
- $(处理程序)
- jQuery(函数($) {});
- jQuery(文档).ready(函数($) {});
那是对的吗?我错过了吗?
我对创建新 jQuery 对象的所有不同方法有点困惑。
相关文档似乎是: http://api.jquery.com/ready/ http://api.jquery.com/jQuery/
从这两个文档中,以下都是等效的(除了别名或不别名'$'):
那是对的吗?我错过了吗?
这些有点等价:
$(document).ready(handler)
-handler
调整 DOM 加载的时间$().ready(handler)
- 在handler
加载 DOM 时运行(不推荐使用,不要使用)$(handler)
- 运行handler
然后加载 DOM - 快捷方式$(document).ready(handler)
jQuery(function($) {})
与上面的#3 相同,只是使用jQuery
而不是$
别名jQuery(document).ready(function($) {})
- 与第一个相同,再次使用jQuery
而不是$
别名如果$
被定义为其他东西,例如原型,那么前 3 个将不起作用。最后两个类似,它们只是接受传入(jQuery
对象)的第一个参数并将其$
放入内部,即使在其他情况下也可以这样做$
:
jQuery(function($) {
$("input").val("something");
});
嗯,还有一个。从文档:
还有 $(document).bind("ready", handler)。这与 ready 方法的行为类似,
但有一个例外:如果 ready 事件已经触发并且您尝试 .bind("ready") 绑定的处理程序将不会被执行。
其他初始化方法将始终运行......因此您可能会发现自己$(document).ready(function() { //stuff }
在许多文件中声明,并且处理程序始终运行。
我会选择jQuery(document).ready(function($) {})
或$(document).ready(function() {})
经常选择...我发现它们更具可读性。
另一种方法是在结束正文标记之前调用一个脚本,并在其中执行类似的操作,
(function($) {
//stuff
})(jQuery);
if you need to avoid conflicts with other libraries using $. This is a self-executing anonymous function and it lets you use the alias in its scope without fear of conflicts from other libraries.
好吧,如果你只使用 jQuery,那么 $() 就等同于 jQuery()。所以这涵盖了其中的一半。
然后,如果您使用 $() 而不是 $(document).ready,则它们是相同的。在这种情况下,它只是一个辅助函数。例如,您可能希望在其他东西上添加 ready ,在这种情况下,您会这样做: $(foo).load({})
最后,我不知道你所说的 $().ready 是什么意思,因为你必须传递一个参数。