【问题标题】:jquery $(document).ready() queue orderjquery $(document).ready() 队列顺序
【发布时间】:2010-10-20 09:41:04
【问题描述】:

我有一个扩展 base.html (django) 的页面 index.html,每个页面都有一个 $(document).ready 定义。现在,我希望 base.html 中的那个首先出现,但我错了,index 中的那个是第一个,base.html 中的那个在后面开始。我猜这是因为索引在基础之前完成加载,而不是 jquery 的一些默认行为,让子代在父代之前执行。我可以做些什么来改变这个订单吗?因为父级决定(取决于窗口大小)菜单应该是垂直的还是水平的,而子级会缩放一个 div 以占据窗口的其余部分。现在我希望在菜单到位后进行缩放。

【问题讨论】:

  • 它们在你的框架中被调用的顺序并不是真正的问题——它们在呈现的 HTML 中出现的顺序是什么?

标签: jquery document-ready


【解决方案1】:

理论上,您可以通过操纵jQuery.readyList 数组并四处移动来改变这一点,但是您会有点盲目。相反,我建议您将需要在其他脚本之后运行的脚本从 document.ready 切换到 window.onload,如下所示:

$(window).load(function() {
  //code to run after the others
});

看来你还是想要这个,因为你正在处理窗口大小和缩放,这发生在图像加载之后,所以你的比例是正确的,不会改变。

【讨论】:

  • 不是真的,我有一个编辑器,在加载内容时我在它上面放置了一个透明的灰色层。这发生在 index.html 中。在 base.html 中,我根据窗口大小显示垂直或水平菜单,因此包含 index.html 的内容 div 将在 base.html 完成加载时调整大小。所以问题是索引首先完成并放置覆盖,然后编辑器调整大小并且覆盖不再适合,看起来非常糟糕。但是,如果我等待 window.load ,它将全部加载,因此不再显示叠加层。
猜你喜欢
  • 2010-12-11
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 2012-12-20
  • 2014-04-20
  • 2013-07-19
  • 1970-01-01
  • 2020-09-24
相关资源
最近更新 更多