jQuery: Как я могу определить, изменился ли html в данном элементе?

В javascript, возможно с использованием jQuery, как я могу определить, изменилось ли содержимое html данного элемента?

Я хотел бы иметь возможность сделать что-то вроде:

$('#myDiv').change(function(){
  // do some stuff
});

Я в основном пытаюсь определить, были ли данные элементы добавлены в div или внутренний html данных элементов (например, метки) изменился, а затем скрыть или показать div в зависимости от содержимого.

Любая альтернативная идея о том, как достичь SMT, как это также приветствуется.

Я надеюсь, что мне не придется возвращаться к неясному плагину, чтобы сделать это!

ПРИМЕЧАНИЕ: это должно работать по крайней мере в IE8!

1 ответ

Решение

Вы можете использовать событие DOM Level 3 DOMNodeInserted. Пример:

$('#myDiv').bind('DOMNodeInserted', function(e) {
    console.log('element: ', e.target, ' was inserted);
});

Демо: http://www.jsfiddle.net/vsgdZ/1/

Событие будет срабатывать всякий раз, когда новый узел добавляется к элементу, с которым вы связываете обработчик.

Другие вопросы по тегам