Mutationobserver无法检测元素dom的移除

时间:2015-02-19 03:54:38

标签: javascript dom mutation-observers mutation-events

所以,我认为这将是非常直接的,曾经有一个DOMNodeRemoved事件,但是已经弃用,相反,应该使用MutationObserver,事情是,它没有' t fire,即使是合适的配置。

根据this article关于从变异事件迁移到变异观察者的情况,用于检测节点的dom去除的配置是{ childList: true, subtree: true },这适合于赋予childList强制性和{{1}根据{{​​3}},它意味着它将捕获突变不仅仅是目标,而且还要观察目标的后代

无论如何,我已经提出问题的the mdn article,它非常简单,subtree删除了<button>,观察者应该记录变异记录,但它没有' t,看看你是否能弄明白:)

HTML

<div>

的JavaScript

<div>Oh my god karen, you can't just ask someone why they're white.</div>
<button>^Remove</button>

谢谢!

1 个答案:

答案 0 :(得分:9)

由于名称建议childList仅捕获对观察节点的直接子节点列表的更改,subtree将任何指定的条件扩展到所有后代(它本身不做任何事情)。 / p>

但你两个都没做。您正在移除观察到的节点本身,同时保持其后代不变。

只需观察div.parentNode即可解决您的问题。