Как определить, когда DOM был изменен? - PullRequest
8 голосов
/ 19 сентября 2010

Есть ли простой способ узнать, когда DOM был изменен?

Есть ли для этого встроенные события / функции JavaScript / jQuery?

Ответы [ 3 ]

6 голосов
/ 19 сентября 2010

Если вам необходимо обнаружить изменения, вы можете проверить события мутации DOM. На странице википедии DOM перечислены все. Однако вы должны знать, что они не поддерживаются в Internet Explorer и могут запускаться слишком часто в браузерах, которые их поддерживают. Метод грубой силы - использовать setTimeout и самостоятельно проверять наличие изменений.

Однако мой опыт показывает, что необходимости в уведомлениях об изменении DOM можно избежать. Не могли бы вы дать более подробную информацию о ваших точных требованиях?

4 голосов
/ 19 сентября 2010

Вы можете присоединиться ко многим событиям DOM в зависимости от типа изменений, которые вы хотите прослушать. Вот страница со всеми событиями изменения DOM:

https://developer.mozilla.org/en/DOM_Events

Общее, универсальное событие изменения DOM: DOMSubtreeModified. Например:

document.getElementById('abc').addEventListener('DOMSubtreeModified', f, false);
2 голосов
/ 19 сентября 2010

К сожалению, для этого нет встроенного события, которое широко поддерживается.Вы можете использовать плагин jQuery под названием livequery .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...