gpt4 book ai didi

javascript - 我希望变异观察者监听它的目标节点本身是否在 javascript 中被删除

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:36 25 4
gpt4 key购买 nike

我在目标节点上使用变异观察器。如果任何子节点或属性发生变化,它就会触发。但是我有一个案例,我必须处理目标节点本身被删除的情况。这是行不通的。有办法处理吗?

最佳答案

MutationObservers 可以观察 3 件事:

  • 属性改变
  • 文字内容变化
  • 子列表更改

然后可以选择冒泡这些更改事件,因此如果您想要更改目标和目标的所有子项,您可以这样做。

这意味着您无法通过倾听目标来完成您想要的。您需要将观察者附加到目标的父节点,并监听父节点上的 childList 更改,该更改删除了您要跟踪的节点。

例如而不是你所希望的这个假例子

var observer = new MutationObserver(callback);
observer(target, {
// Fake non-existent option
parent: true
});

你会

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
});

关于javascript - 我希望变异观察者监听它的目标节点本身是否在 javascript 中被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com