为什么jQuery.ready在页面未准备好时运行?

时间:2011-02-09 18:25:28

标签: javascript jquery

所以我常常将jquery文档就绪函数放在我的html底部,只是为了让它在页面的所有元素加载之前运行。我已经厌倦了我的功能无法工作,因为资源没有在页面上完成加载,jquery.ready一直说这些元素在它们不合时完成加载!谁想要设置一个300毫秒的超时,以便他们的功能在jquery.ready之后稍微等一下?

6 个答案:

答案 0 :(得分:11)

使用.ready()在DOM准备好编写脚本时执行操作。

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

使用.load()在加载“页面”(包括文件和图像的资源)时执行操作。

$(window).load(function(){
});

答案 1 :(得分:6)

jQuery.ready在DOM元素准备就绪时触发,而不是在脚本/图像/等完成加载时触发。

关于.ready()的文档说明:

  

指定在DOM完全加载时要执行的函数。

答案 2 :(得分:3)

正如simshaun所说,当DOM准备就绪时,jQuery.ready会激活 - 而不是像图像这样的东西准备好了。如果要等待加载图像,则必须使用以下代码:

$(window).load(
    function() {
        // do stuff here
    }
);

答案 3 :(得分:0)

$。ready在DOM加载时运行,而不是在页面完全加载时(图像等...)

也许你正在寻找

$(window).load(function(){   // 东西 });

答案 4 :(得分:0)

来自jQuery API文档:

  

虽然JavaScript在呈现页面时提供了用于执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件。在大多数情况下,只要完全构造DOM层次结构,就可以运行脚本。传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置。使用依赖于CSS样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素非常重要。

因此,如果您需要所有来完成加载,请使用load事件,但如果您只需要准备好DOM,请使用ready事件。

答案 5 :(得分:0)

当DOM准备好而不加载二进制数据时,

.ready()函数运行。要确保加载二进制数据,您可以使用.load()函数