Есть ли эффективный способ получать уведомления об изменениях атрибута элемента HTML DOM? - PullRequest
4 голосов
/ 02 февраля 2011

У меня есть список <ul><li>, и мне нужно сообщить о текущем width / height каждого <li>. Допустим, один из этих атрибутов изменяется по внешней причине (не по моему собственному коду), например, путем изменения размера браузера, с помощью другого сценария, обмена стилями или чего-то подобного, что я не могу контролировать с помощью своего собственного кода.

Каков наилучший и наиболее эффективный (эффективный) способ отслеживания этих изменений?

Моим первым решением будет setInterval(myMonitorFunction, 100), который перебирает все соответствующие элементы DOM. Это медленный (100 мс), и он также потребляет большую производительность, чем больше список элементов.

Для элементов формы существует событие onchanged, позволяющее эффективно контролировать входные значения. Я ищу что-то похожее (и похожее эффективное) для всех / других атрибутов элемента DOM, но пока не могу найти какое-либо хорошее решение.

1 Ответ

1 голос
/ 02 февраля 2011

Событие DOMAttrModified есть, но оно поддерживается только в современных браузерах.Если вы хотите поддерживать более старые браузеры (например, IE), не существует простого способа сделать это, кроме того, который вы упомянули (что, конечно, излишне).

...