如何从MutationObservers中查找元素的父级何时从DOM中删除?

时间:2019-01-07 22:35:06

标签: javascript html dom custom-element mutation-observers

我的应用程序有一些MutationObservers附加到DOM树中较低的DOM元素。他们需要检测何时将其任何祖先从DOM中删除。

使用MutationObservers来检测是否删除了特定元素或其任何子元素很简单。但是,确定父元素是否被删除的最佳方法是什么?

Here is a plunker演示了此问题。在插件中,请注意,当您单击“删除父对象”时,将调用父元素的变异观察者。但是,子元素的观察者不是。

我如何有效地使用MutationObservers检查何时从文档中删除节点?


修改

我的用例是,我已经实现了一些Web组件,这些组件在从DOM中删除它们(或其父级之一)时需要调用清理代码。我希望封装每个Web组件,以便它处理自己的清理操作,并且没有全局注册表(本机window.customElements除外)。

1 个答案:

答案 0 :(得分:3)

从头开始实施Web组件时,应使用本机lifecycle callbacks。就您而言,disconnectedCallback将是触发组件内部清理代码的人。