// выбираем нужный элемент
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();
const elementReady = (parent, selector) => {
return new Promise(resolve => {
let el = parent.querySelector(selector)
if (el) {
resolve(el)
}
new MutationObserver((mutationRecords, observer) => {
// Query for elements matching the specified selector
Array.from(parent.querySelectorAll(selector)).forEach(element => {
resolve(element)
// Once we have resolved we don`t need the observer anymore.
observer.disconnect()
})
}).observe(parent.documentElement, {
childList: true,
subtree: true,
})
})
}