Dis que j'avais un div#parent
et I append
et remove
éléments en utilisant jquery. Comment pourrais-je détecter lorsqu'un tel événement se produit sur le div#parent
élément?
Utilisez Observateurs de mutations comme suggéré par @Qantas dans son réponse
Les méthodes suivantes sont déconseillées
Vous pouvez utiliser DOMNodeInserred et DOMNodeRemoved
$("#parent").on('DOMNodeInserted', function(e) {
console.log(e.target, ' was inserted');
});
$("#parent").on('DOMNodeRemoved', function(e) {
console.log(e.target, ' was removed');
});
N'utilisez pas d'événements de mutation comme DOMNodeInserred et DOMNodeRemoved.
Au lieu de cela, utilisez DOM Mutation Observers , qui sont pris en charge dans tous les navigateurs modernes à l'exception d'IE10 et inférieurs ( Puis-je utiliser ). Les observateurs de mutations sont destinés à remplacer les événements de mutation (qui ont été dépréciés), car ils se sont avérés avoir de faibles performances en raison de défauts de conception .
var x = new MutationObserver(function (e) {
if (e[0].removedNodes) console.log(1);
});
x.observe(document.getElementById('parent'), { childList: true });
Vous devez lier DOMSubtreeModified
événement
$("#parent").bind("DOMSubtreeModified",function(){
console.log('changed');
});