1

我正在使用该事件进行 ajax 调用以检索一些 html,然后将其用于填充元素window.load的 .html 属性。<li>这可行,尽管性能可能会更好,因为在我的通话开始之前必须加载所有内容。

作为此 ajax 调用的一部分,参数之一是<li>'outerWidth值。但是,当我尝试进行 ajax 调用时,例如,document.ready处理程序outerWidth设置不正确。我认为这是因为 DOM 元素当时还没有机会知道它们的最终大小。但是,在document.ready火灾发生之前我可以处理一个我知道元素大小的事件吗?window.load和之间的东西document.ready

我还使用了 jQuery mobile 的 pageinit 事件来代替,document.ready但在这种情况下没有区别,这是可以理解的。我将使用 pageinit 继续前进。

4

1 回答 1

1

您可以使用load()on 特定的 DOM 元素而不是 on window

jQuery .load()

此方法是.bind('load', handler).

当元素和所有子元素都已完全加载时,加载事件将发送到该元素。此事件可以发送到与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。

通过绑定到特定 DOM 元素上的加载事件,您不必等待其他(非子)项目呈现并且应该具有更好的性能。window.load(),正如您所发现的,将等待所有子元素加载。

例如,考虑一个带有简单图像的页面:

<img src="book.png" alt="Book" id="book" />

事件处理程序可以绑定到图像:

$('#book').load(function() {
  // Handler for .load() called.
});
于 2012-10-30T22:20:50.507 回答