jQuery文档就绪函数
以下jQuery代码段的最终结果是否相同?
小片1:
$(function() { alert('test!'); });
摘录2:
$(document).ready(function() { alert('test!'); });
换句话说, $(function(){})
只是$(document).ready(function() { });
简写$(document).ready(function() { });
?
我问的原因是因为我们在使用jQuery和jQuery UI构建的小应用程序中看到了一些奇怪的问题。 有时,通过单击按钮执行表单提交操作时,浏览器窗口将冻结。 我们仍然可以使用底层浏览器窗口(启动弹出窗口的窗口),直到我们在那里执行某些操作。 用户只能通过强制关闭浏览器(显然是Internet Explorer)继续。 我们怀疑这与Acrobat PDF插件有关,但我只是在这里查看所有角度,因为我发现这个问题似乎表现出类似的行为。
是的,他们是等同的。 请参阅此链接以供参考.ready()
以下所有三种语法都是等效的:
$(document).ready(handler) $().ready(handler) (this is not recommended) $(handler)
别名jQuery命名空间
使用其他JavaScript库时,我们可能希望调用$ .noConflict()以避免名称空间困难。 当调用此函数时,$快捷方式不再可用,每次我们通常写$时都会强制我们编写jQuery。 但是,传递给.ready()方法的处理程序可以接受一个参数,该参数传递给全局jQuery对象。 这意味着我们可以在.ready()处理程序的上下文中重命名对象,而不会影响其他代码:
jQuery(document).ready(function($) { // Code using $ as usual goes here. });
$(function(){})
和$(document).ready(function() { })
是相同的。
是的,这是完全相同的。 但第一个通常用于jquery以方便。
$(function() { alert('test!'); });
是:
$(document).ready(function() { /* code */ });
…和:
$(function() { /* code */ });
…实际上是相同的,后者通常被称为前者的简写。
如果你想知道为什么它们会产生相同的结果,那么它与jQuery构造函数 – jQuery()
函数,别名为$()
– 及其允许的输入有关。
构造函数记录在api.jquery.com/jquery/中 ,其两个相关选项概述如下。
jQuery( selector [, context ] )
接受包含CSS选择器的字符串,然后使用该选择器匹配一组元素。
返回一个jQuery对象。
上面的这个选项是你在编写时调用jQuery构造函数的方法:
$(document).ready(function() { /* code */ });
选择document
对象并用于构造jQuery对象 。 当DOM完全加载时,该jQuery对象在ready()
调用回调(匿名函数ready()
。
jQuery( callback )
绑定DOM完成加载时要执行的函数。
返回一个jQuery对象。
上面的这个选项是你在编写时调用jQuery构造函数的方法:
$(function() { /* code */ });
回调函数(匿名函数)用于构造jQuery对象,当DOM完全加载时,它被调用。
以下代码也有效
$(document).ready(function(){ alert("success"); });
要么
$(function(){ alert("succes"); });
编写jQuery Document Ready Snippet的不同方法
$(document).ready(function() { ... }); $(function() { ... }); jQuery(document).ready(function() { ... }); jQuery(function() { ... });
http://webiwip.com/interview-questions-answers/jquery-interview-questions/10510