Anteriormente, era possível se conectar ao domManip
método jQuery para capturar todas as manipulações dom do jQuery e ver quais elementos foram inseridos etc., mas a equipe da jQuery desligou isso no jQuery 3.0+, pois geralmente não é uma boa solução para se conectar a métodos jQuery dessa maneira, e fizemos isso de forma que o domManip
método interno não esteja mais disponível fora do código jQuery principal.
Eventos de mutação também foram descontinuados, como antes que se pudesse fazer algo como
$(document).on('DOMNodeInserted', function(e) {
if ( $(e.target).hasClass('MyClass') ) {
}
});
isso deve ser evitado e, hoje, devem ser usados Observadores de mutação, que funcionariam assim
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation)
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
var hasClass = [].some.call(mutation.addedNodes, function(el) {
return el.classList.contains('MyClass')
});
if (hasClass) {
console.log('element ".MyClass" added');
}
}
});
});
var config = {
attributes: true,
childList: true,
characterData: true
};
observer.observe(document.body, config);