Dha*_*i S 7 javascript dom mutation-observers
我正在目标节点上使用突变观察器。如果任何子节点或属性发生更改,它就会触发。但我有一个情况,我必须处理目标节点本身被删除的情况。这是行不通的。有办法处理这个问题吗?
MutationObservers 可以观察 3 件事:
然后,可以选择将这些更改事件冒泡,因此如果您想对目标及其所有子级进行更改,则可以这样做。
这意味着你无法通过倾听目标来完成你想要的事情。您需要将观察者附加到目标的父节点,并侦听父节点上删除要跟踪的节点的 childList 更改。
例如,而不是你所希望的这个假例子
var observer = new MutationObserver(callback);
observer(target, {
// Fake non-existent option
parent: true
});
Run Code Online (Sandbox Code Playgroud)
你做
var observer = new MutationObserver(function(mutations){
var targetRemoved = mutations.some(function(mutation){
return mutation.removedNodes.indexOf(target) !== -1;
});
if (targetRemoved) callback();
});
observer(target.parentNode, {
childList: true
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3322 次 |
| 最近记录: |