Javascript 为什么document.ready不总是有效?

Javascript 为什么document.ready不总是有效?,javascript,jquery,Javascript,Jquery,我有一个非常简单的函数,可以根据页面上的元素调整div的大小 由于页面顶部的静态导航栏,我需要控制其下方的空白区域,以便第一个包含内容的div显示在正确的位置(导航栏下方),特别是因为屏幕越小,导航栏越大(高度越大) 我的问题是:为什么它不总是有效?它在大多数情况下工作正常,但有时我需要刷新页面才能正常工作 以下是虚拟HTML: <div id="menu-fixed-top"></div> <div id="empty-space"></div>

我有一个非常简单的函数,可以根据页面上的元素调整div的大小
由于页面顶部的静态导航栏,我需要控制其下方的空白区域,以便第一个包含内容的div显示在正确的位置(导航栏下方),特别是因为屏幕越小,导航栏越大(高度越大)
我的问题是:为什么它不总是有效?它在大多数情况下工作正常,但有时我需要刷新页面才能正常工作
以下是虚拟HTML:

<div id="menu-fixed-top"></div>
<div id="empty-space"></div>
<div id="content"></div>
有没有办法让它100%的工作时间?或者唯一的方法是确保使用媒体查询

谢谢

document.ready将在整个DOM加载并准备好让javascript执行时触发。这是为了避免javascript准备就绪但整个DOM尚未完成加载时出现任何问题

在得出jquery没有启动的结论之前,我首先检查DOM是否已完成加载,而没有触发document.ready


如果您要计算高度,例如DOM!=完全呈现的页面

您能发布一段代码来重现问题吗?DOM就绪并不意味着内容已加载。。。当您计算元素的宽度/高度时,您也需要内容-因此,请使用$(窗口)加载…谢谢!Windows.load解决了问题。谢谢!window.load为网站的桌面版本解决了此问题。TK别忘了将你的问题标记为已回答。它确实有助于其他人快速发现问题的答案。:)
$(document).ready(function() {
  var height = $("#menu-fixed-top").innerHeight();
  $("#empty-space").height( height );
    $(window).resize(function() {
      $("#empty-space").height( height );
   });
});