javascript - 为什么这个 document.ready 没有按时触发

标签 javascript html image document-ready

Possible Duplicate:
window.onload vs document.ready jquery

我遇到了这个问题:我的页面上有一张图像,但它不是那么大。我有一个 js 函数,它根据内容的高度和窗口的大小动态设置左侧边栏的高度。因此,如果我调整页面大小,侧边栏也会动态调整大小。但现在,侧边栏高度设置得很早,最终设置错误。该设置将在“document.ready”函数中进行,该函数应该在所有 DOM 准备就绪(包括图像)后触发,对吗?

这是我的页面,请在chrome中打开它,您会更清楚地看到问题。 http://www.stahlbaron.de/standort/

这是我的 js 函数,它动态设置侧边栏。

<script type="text/javascript">
   var calculateSize = function () {
   var winh = document.body.clientHeight;
   var footer = document.getElementById('footer').offsetHeight;
   document.getElementById('sidebar').style.height = winh - 5/2*footer + 'px';
   document.getElementById('sidebar').style.marginBottom = footer + 'px';
}
$(document).ready(function(){
   calculateSize();
   $(window).resize(calculateSize);
});

感谢您的任何观点和您的时间!

最佳答案

您应该捕获 $(window).on('load', ...) 而不是 $(document).ready

前者等待图像(以及所有其他内容)加载,而后者仅等待表示要创建的 HTML 源中的元素的 DOM 树。

由于您希望在调整大小时调用相同的函数,因此可以组合事件注册:

$(window).on('load resize', calculateSize);

关于javascript - 为什么这个 document.ready 没有按时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959541/

相关文章:

javascript - CKEditor 4 工具栏定义

javascript - React + Redux,我的 UI 相关的计算应该去哪里,容器组件,还是 reducer?

php - 如何从 pdo 语句显示数组的所有值?

javascript - 如何使用 html5 canvas 绘制边框为 1px 的矩形?

android - 通过 Fedor onitemclick 实现使用 LazyList

javascript - Vue.js - 将对象转换为具有键和值的对象数组

html - 在圆圈下方添加文本以与圆圈对齐

php - 如何将 "../"添加到 PHP echo img src

java - 当鼠标悬停时如何更改java中扩展JButton的背景

javascript - 尽管在 $watch 函数中设置了 $scope 变量,但 $scope 变量未定义