Anteriormente, uno podía conectarse al domManipmétodo de jQuery para capturar todas las manipulaciones de jQuery dom y ver qué elementos se insertaron, etc., pero el equipo de jQuery lo cerró en jQuery 3.0+, ya que generalmente no es una buena solución conectarse a los métodos de jQuery de esa manera, y ellos ' Lo hemos hecho para que el domManipmétodo interno ya no esté disponible fuera del código jQuery principal.
Los eventos de mutación también se han desaprobado, ya que antes se podía hacer algo como
$(document).on('DOMNodeInserted', function(e) {
if ( $(e.target).hasClass('MyClass') ) {
}
});
esto debe evitarse, y hoy en día se deben usar los observadores de mutaciones, que funcionarían así
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);