我遇到了一些代码$(window).ready()
,它可以在 HTML 元素上调整圆顶 UI 的大小和定位。我想知道为什么要使用它?以这种方式使用它有优势吗?
有什么优势吗$(document).ready()?
我遇到了一些代码$(window).ready()
,它可以在 HTML 元素上调整圆顶 UI 的大小和定位。我想知道为什么要使用它?以这种方式使用它有优势吗?
有什么优势吗$(document).ready()?
ready
over事件的优点load
是它会在 DOM 准备好后立即触发,而无需等待加载距离资源(主要是图像)。通常您只想确保元素存在,以便您可以绑定到它们,但您不需要加载距离资源。
从文档中:
在大多数情况下,脚本可以在 DOM 层次结构完全构建后立即运行
$(window).ready()
并且$(document).ready()
是等价的。
从源代码:
ready: function( fn ) {
// Add the callback
jQuery.ready.promise().done( fn );
return this;
},
您会看到该参数甚至没有被使用,它只是被返回,以便您可以根据需要进行链接。你可以这样做:
$({}).ready(function(){
...
});
但你不应该担心,应该使用快捷方式:
$(function(){
// your code which needs the DOM here
});
我查看了 jQuery 1.9.0 源代码,它看起来不像该.ready()
方法在它所应用的对象上使用;它document
在整个过程中都进行了硬编码。所以所有$(anything).ready(...)
的调用都是等价的。
下载源代码并查看 的定义jquery.ready.promise
,这是完成大部分工作的地方$(...).ready()
。
该文档清楚地表明$(window).ready()
没有定义的含义:
该
.ready()
方法只能在匹配当前文档的 jQuery 对象上调用,因此可以省略选择器。
目前该对象被忽略,上面允许他们在将来更改此行为,因为它不应该影响任何正确编写的代码。