Установка наблюдателя MutationObserver
Здравствуйте!
Подскажите, пожалуйста,.. возникло несколько вопросов по ниже приведенному коду. Нужно отследить появления элемента... Вопрос: Здесь указываем тот элемент, в котором ожидаем появления нужного нам элемента, или тот элемент, появления которого мы ожидаем?: document.querySelector('#some-id'); // выбираем нужный элемент для наблюдения var target = document.querySelector('#some-id'); // если jQuery var target = $('#some-id')[0]; // создаем новый экземпляр наблюдателя var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { console.log(mutation.type); }); }); // создаем конфигурации для наблюдателя var config = { attributes: true, childList: true, characterData: true }; // запускаем механизм наблюдения observer.observe(target, config); // позже, если надо, прекращаем наблюдение observer.disconnect(); |
Цитата:
Цитата:
|
Цитата:
|
А mutations.forEach(function(mutation)({}) что делает? При каждом изменении DOM ищет тот элемент, за которым установлено наблюдение?
|
:-?
Цитата:
Цитата:
|
Подскажите, пожалуйста, почему ошибка?: Uncaught NotFoundError: Failed to execute 'observe' on 'MutationObserver': The provided node was null
// выбираем элемент, который должен появится в DOM var target = document.querySelector("#message-list"); function track_send(){ var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { alert("Сработало!"); }); }); var config = { attributes: true, childList: true, characterData: true }; observer.observe(target, config); } $("div[data-name='send']").click(function(){ track_send(); //............. }); |
Цитата:
|
Не понял. Тогда, нужно проверку что ли ставить? А иначе, как узнать то, что появился на страницы именно тот элемент, который нужен?
Как мне узнать, когда на странице появится $('div#some-id'); ??? |
DDim1000, установите слушателя на родительский элемент относительно вашего div#some-id и слушайте изменения детей.
|
Что-то у меня не получается.... Посмотрите, пожалуйста, код: https://jsfiddle.net/z9q3kn6w/1/
|
Часовой пояс GMT +3, время: 12:39. |