2011-02-02 27 views
3

我有一个<ul><li>名单,并需要了解每个<li>的当前width/height。 假设其中一个属性因外部原因(不是我自己的代码)而发生变化,例如,通过调整浏览器大小,通过另一个脚本,样式交换或类似的东西,我无法使用自己的代码进行控制。是否有一种有效的方法来获取HTML DOM元素属性更改的通知?

追踪这些变化的最佳和最有效(性能)方式是什么?

我的第一个解决方案是setInterval(myMonitorFunction, 100),它循环遍历所有相关的DOM元素。这是laggy(100ms),并且元素列表越大,性能也会大大降低。

对于表单元素,有onchanged事件允许有效监视输入值。我正在为所有/其他DOM元素属性寻找类似(和类似的效率)的东西,但找不到任何好的解决方案。

THX, 尤文

回答

1

有一个DOMAttrModified事件,但它只有在现代浏览器的支持。如果你想支持更老的浏览器(比如IE),除了你提到的那个之外,没有简单的方法来做到这一点(当然这是一个矫枉过正)。

+0

谢谢,那就是我正在寻找的。我不在乎旧的浏览器。我也在大量使用SVG,并且在任何事情可以上线之前,我必须等待现代浏览器变得更加现代化,才能正确支持SVG的许多功能。 ;) – Juve 2011-02-02 11:38:53

相关问题