【问题标题】:window.onload vs document.ready jQuerywindow.onload 与 document.ready jQuery
【发布时间】:2012-06-02 10:22:45
【问题描述】:

我有一个包含两列的网站。我想使用 jQuery 在两者上具有相同的高度。

我正在尝试获取徽标列的高度。我有:

$(document).ready(function() {
    alert($('#logo').height());
});​

它没有工作。所以我把它改成:

window.onload = function(){
    alert($('#logo').height());
}

而且它正在工作。这是怎么回事?

【问题讨论】:

    标签: jquery window document onload ready


    【解决方案1】:

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

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

    【讨论】:

    • 哦,谢谢您的回复:P 有没有办法获得高度但不需要 w8 来加载图像?
    • 如果在<img> 标签中指定了宽度/高度尺寸,您可以在它们加载之前获取它们。否则,您将不得不等待。
    【解决方案2】:

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

    $(document).ready()

    当 HTML 文档被加载并且 DOM 就绪时触发文档就绪事件,即使所有的图形还没有加载。如果您想在窗口加载之前为某些元素关联事件,那么 $(document).ready 是正确的地方。

    代码:

    $(document).ready(function() {
        // document is loaded and DOM is ready
        alert("document is ready");
    });
    

    $(window).load()

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

    代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 2012-03-28
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      相关资源
      最近更新 更多