Как отключить MutationObserver, когда один из элементов, перенесших мутацию, больше не найденJavascript

Форум по Javascript
Anonymous
Как отключить MutationObserver, когда один из элементов, перенесших мутацию, больше не найден

Сообщение Anonymous »

У меня есть MutationObserver, чтобы выполнить некоторую логику, поскольку элементы DOM добавляются. В конце мне нужно отключить наблюдателя. Это решение само по себе основано на том, существует ли определенный элемент или нет. Если в DOM больше нет загрузки , то это когда мне нужно отключить наблюдатель. Но безопасно ли это сделать внутри функции MutationObserver? < /P>

Код: Выделить всё

    const targetElement = document.querySelector('div.serviceRequest');

// Create a MutationObserver
const observer = new MutationObserver(function(mutationsList) {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
updateSubmenuWhenScrolling();
}
// TODO: If a certain element is no longer found, need to disconnect
// let loadingElement = document.querySelector('div.loading');
// if (!loadingElement) {
//    observer.disconnect(); // ???
// }
}
});

// Configure the observer to watch for child list changes in the subtree
const config = { childList: true, subtree: true };

// Start observing the target element
if (targetElement) {
observer.observe(targetElement, config);
}
Этот поток подразумевает, что можно отключиться в функции мутатора, имея 2 -й аргумент для функции и вызывая отключение . Мой вопрос Почему это нормально. Я пришел к функции мутатора в результате изменений DOM, и я бы отключался прямо в середине этих изменений DOM на одном и том же наблюдателе. Что также, если отключить называется несколько раз в результате нескольких вызовов функций?

Подробнее здесь: https://stackoverflow.com/questions/796 ... g-mutation

Вернуться в «Javascript»