window.onload vs document.ready jQuery

Kry*_*ryQ 25 jquery document window onload ready

我有一个有两列的网站.我希望在使用jQuery时都有相同的高度.

我正试图获得徽标列高度.我有:

$(document).ready(function() {
    alert($('#logo').height());
});?
Run Code Online (Sandbox Code Playgroud)

它不起作用.所以我改成了:

window.onload = function(){
    alert($('#logo').height());
}
Run Code Online (Sandbox Code Playgroud)

它正在发挥作用.这里发生了什么?

ahr*_*ren 34

document ready 在DOM加载时触发,因此高度等信息不可用,除非明确声明.

window onload 等待页面中的资产完全加载 - 因此现在可以使用高度等信息.


kam*_*esh 6

我在处理 $(document)ready 内的图像高度和宽度时遇到了同样的问题,我找到了一些更好的参考来解决它......我希望这可以帮助某人

$(文档).ready()

当 HTML 文档加载完毕且 DOM 准备就绪时,即使所有图形尚未加载,也会触发文档就绪事件。如果您想在窗口加载之前为某些元素连接事件,那么 $(document).ready 是正确的位置。

代码:

$(document).ready(function() {
    // document is loaded and DOM is ready
    alert("document is ready");
});
Run Code Online (Sandbox Code Playgroud)

$(窗口)。加载()

窗口加载事件稍后触发,当整个页面完全加载时,包括所有框架、对象和图像。因此,与图像或其他页面内容有关的函数应放置在窗口的加载事件或内容标签本身中。

代码:

$(window).load(function() {
    // page is fully loaded, including all frames, objects and images
    alert("window is loaded");
});
Run Code Online (Sandbox Code Playgroud)