jQuery没有在文档加载时返回正确的主体高度 - 他们的bug还是我的?

时间:2010-05-18 00:11:27

标签: jquery google-chrome

当我使用

$(document).ready(function() {
 var bodyHeight = $("body").height();
 console.log(bodyHeight);
});

我得到一个真正的身体高度数字。然后我跑

$("body").height();
在控制台中

并获得正确的高度。关于$(document).load这样的事情看起来很可疑......是的,我的CSS工作正常,所有这些,我的bug,chromes或jQuery是什么?

2 个答案:

答案 0 :(得分:15)

在加载DOM之后但在页面完全呈现之前,document.ready事件将触发。如果你想获得正确的高度,你应该尝试在加载所有图像和对象并渲染页面后触发的window.load事件:

$(window).load(function() {
    var bodyHeight = $("body").height();
});

答案 1 :(得分:11)

您想查看$(window).load()函数而不是$(document).ready()

当加载并准备好HTML DOM时,即使所有图形尚未加载,也会执行$(document).ready()事件。完整页面完全加载后,$(window).load()事件将在稍后执行,包括所有帧,对象和图像。

这是描述差异的绝佳链接。 http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/