我正在使用window.load
事件进行ajax调用以检索一些html,然后我将其用于填充<li>
元素的.html属性。这是有效的,但性能可能更好,因为在我的通话开始之前必须加载所有内容。
作为此ajax调用的一部分,其中一个参数是<li>
的{{1}}值。但是,当我尝试在outerWidth
处理程序中进行ajax调用时,document.ready
未正确设置。我认为这是因为DOM元素在那时没有机会知道它们的最终大小。但是,是否有一个事件我可以在outerWidth
点火之前处理,我会知道元素的大小? document.ready
和window.load
之间的某些内容?
我也使用jQuery mobile的pageinit事件代替document.ready
,但在这种情况下没有区别,这是可以理解的。我将继续使用pageinit fwiw。
答案 0 :(得分:1)
您可以对特定的DOM元素使用load()
,而不是window
。
此方法是.bind('load', handler)
的快捷方式。
当加载事件和所有子元素已完全加载时,会将事件发送到元素。此事件可以发送到与URL关联的任何元素:图像,脚本,框架,iframe和窗口对象。
通过绑定到特定DOM元素上的load事件,您不必等待其他(非子)项呈现,并且应该具有更好的性能。正如您所发现的,window.load()
将等待加载所有子元素。
例如,考虑一个包含简单图像的页面:
<img src="book.png" alt="Book" id="book" />
事件处理程序可以绑定到图像:
$('#book').load(function() {
// Handler for .load() called.
});