有没有一种有效的方式可以通知 HTML DOM 元素属性的变化?

4
我有一个列表 <ul><li>,需要了解每个 <li> 的当前 width/height。假设其中一个属性由外部原因(不是我的代码)更改,例如通过调整浏览器大小、另一个脚本、样式交换或类似的我无法用自己的代码控制的东西。
最好和最有效(性能)的跟踪这些更改的方法是什么?
我的第一个解决方案是使用 setInterval(myMonitorFunction, 100) 循环遍历所有相关的 DOM 元素。这会导致延迟(100ms),并且随着元素列表越来越大,也会消耗大量性能。
对于表单元素,有 onchanged 事件允许有效地监控输入值。我正在寻找类似的(同样高效的)所有/其他 DOM 元素属性,但尚未找到任何好的解决方案。
1个回答

1

有一个DOMAttrModified事件,但它只在现代浏览器中受支持。如果您想支持旧版浏览器(如IE),除了您提到的方法(当然是一种过度解决方案)外,没有其他简单的方法可以做到这一点。


谢谢,这正是我在寻找的。我不关心旧浏览器。我还大量使用SVG,在任何东西可以上线之前,我必须等待现代浏览器变得更加现代,完全正确地支持SVG的许多功能。;) - Juve
我应该指出,虽然正确,突变事件对性能也不利。 - Ms2ger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接