Mutation Betrachter nicht erkennt-element dem dom entfernen
So, ich dachte, das war ziemlich straight forward, es verwendet werden, um eine DOMNodeRemoved
Ereignis, aber das ist deprecated, stattdessen MutationObserver verwendet werden soll, die Sache ist die, es nicht Feuer, auch mit der entsprechenden Konfiguration.
Laut diesem Artikel über die Migration von mutierend Veranstaltungen mutation Beobachter der Konfiguration zu erkennen dom entfernen eines Knotens ist { childList: true, subtree: true }
, und das passt ihm childList
ist obligatorisch und subtree
heißt, es wird ein capture Mutationen, um nicht nur den Gegner, sondern auch Ziel-die Nachkommen sind zu beachten nach der mdn-Artikel.
Sowieso, habe ich eine jsfiddle das problem, es ist ziemlich straight-forward, die <button>
entfernt die <div>
und der Betrachter sollte sich die mutation von Datensätzen, aber nicht, sehen, wenn Sie es herausfinden 🙂
HTML
<div>Oh my god karen, you can't just ask someone why they're white.</div>
<button>^Remove</button>
JavaScript
div = document.querySelector("div");
callback = function(records){
console.log(records);
}
config = {
childList:true,
subtree:true
}
observer = new MutationObserver(callback);
observer.observe(div,config);
button = document.querySelector("button");
button.addEventListener("click",function(){
div.parentNode.removeChild(div);
});
Dank!
- Ich mag DOMNodeRemoved ) Es scheint, dass ein Fall, wo sollten wir lieber den IE nutzen everytime )))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die Namen bereits andeuten
childList
erfasst nur änderungen an der Liste der unmittelbar untergeordneten Elemente eines beobachteten Knotens und diesubtree
erweitert alle genannten Kriterien auf alle Nachkommen (es tut nichts auf eigene).Aber Sie tun weder. Sie entfernen den beobachteten Knoten selbst, wobei seine Nachkommen unverändert.
Einfach die Beobachtung
div.parentNode
stattdessen sollte Ihr problem lösen.document.body
mitchildList
undsubtree
Optionen. Allerdings, ich weiß nicht, wie groß die Auswirkungen auf die Leistung haben wird.