In precedenza si poteva collegarsi al domManipmetodo di jQuery per catturare tutte le manipolazioni di jQuery dom e vedere quali elementi erano inseriti ecc. Ma il team di jQuery lo ha spento in jQuery 3.0+ in quanto generalmente non è una buona soluzione agganciarsi ai metodi jQuery in questo modo, e loro ' Abbiamo fatto in modo che il domManipmetodo interno non sia più disponibile al di fuori del codice jQuery principale.
Anche gli eventi di mutazione sono stati deprecati, poiché prima si poteva fare qualcosa di simile
$(document).on('DOMNodeInserted', function(e) {
if ( $(e.target).hasClass('MyClass') ) {
}
});
questo dovrebbe essere evitato, e oggi dovrebbero essere usati gli osservatori di mutazione, che funzionerebbero in questo modo
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);