0

我遇到了一些代码$(window).ready(),它可以在 HTML 元素上调整圆顶 UI 的大小和定位。我想知道为什么要使用它?以这种方式使用它有优势吗?

有什么优势吗$(document).ready()?

4

2 回答 2

10

readyover事件的优点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
});
于 2013-06-24T15:16:05.273 回答
3

我查看了 jQuery 1.9.0 源代码,它看起来不像该.ready()方法在它所应用的对象上使用;它document在整个过程中都进行了硬编码。所以所有$(anything).ready(...)的调用都是等价的。

下载源代码并查看 的定义jquery.ready.promise,这是完成大部分工作的地方$(...).ready()

该文档清楚地表明$(window).ready()没有定义的含义:

.ready()方法只能在匹配当前文档的 jQuery 对象上调用,因此可以省略选择器。

目前该对象被忽略,上面允许他们在将来更改此行为,因为它不应该影响任何正确编写的代码。

于 2013-06-24T15:23:44.707 回答