我多久可以检索DOM元素的大小?

时间:2012-10-30 19:29:47

标签: jquery

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

作为此ajax调用的一部分,其中一个参数是<li>的{​​{1}}值。但是,当我尝试在outerWidth处理程序中进行ajax调用时,document.ready未正确设置。我认为这是因为DOM元素在那时没有机会知道它们的最终大小。但是,是否有一个事件我可以在outerWidth点火之前处理,我会知道元素的大小? document.readywindow.load之间的某些内容?

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

1 个答案:

答案 0 :(得分:1)

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

jQuery .load()

此方法是.bind('load', handler)的快捷方式。

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

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

例如,考虑一个包含简单图像的页面:

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

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

$('#book').load(function() {
  // Handler for .load() called.
});