В принятом ответе используется устаревший плагин с 2011 года, а в ответе с наибольшим количеством голосов используются события мутации, которые теперь устарели .
Сегодня MutationObserver - это то, что вы должны использовать для определения, когда элемент был добавлен в DOM. MutationObservers теперь широко поддерживаются во всех современных браузерах (Chrome26+, Firefox 14+, IE11, Edge, Opera 15+ и т. Д.).
Вот простой пример того, как вы можете использовать MutationObserver
для прослушивания при добавлении элемента в DOM.
Для краткости я использую синтаксис jQuery для построения узла и вставки его в DOM.
var myElement = $("<div>hello world</div>")[0];
var observer = new MutationObserver(function(mutations) {
if (document.contains(myElement)) {
console.log("It's in the DOM!");
observer.disconnect();
}
});
observer.observe(document, {attributes: false, childList: true, characterData: false, subtree:true});
$("body").append(myElement); // console.log: It's in the DOM!
Обработчик событий observer
будет запускаться всякий раз, когда любой узел добавляется или удаляетсяот document
.Внутри обработчика мы затем выполняем contains
проверку, чтобы определить, находится ли myElement
в document
.
. Вам не нужно перебирать каждый MutationRecord, хранящийся в mutations
, потому что вы можетевыполните проверку document.contains
непосредственно на myElement
.
. Для повышения производительности замените document
на определенный элемент, который будет содержать myElement
в DOM.