Установка наблюдателя 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, время: 06:54. |