Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等同于使用MutationObserver插入的域节点删除?_Javascript_Jquery_Dom_Mutation Observers_Dom Node - Fatal编程技术网

Javascript 等同于使用MutationObserver插入的域节点删除?

Javascript 等同于使用MutationObserver插入的域节点删除?,javascript,jquery,dom,mutation-observers,dom-node,Javascript,Jquery,Dom,Mutation Observers,Dom Node,我目前拥有以下代码: $('.example').bind('DOMNodeInserted DOMNodeRemoved', function(event) { .... }); 它工作得很好,但效率不是很高,因此已被弃用。有什么更好的方法可以做到这一点 我一直在研究MutationObserver,但这段代码行吗 它给出了错误“变异。addedNodes不是函数”,我还需要removedNodes我意识到 var observer = new MutationObserver(fu

我目前拥有以下代码:

$('.example').bind('DOMNodeInserted DOMNodeRemoved', function(event) {
    ....
});
它工作得很好,但效率不是很高,因此已被弃用。有什么更好的方法可以做到这一点

我一直在研究MutationObserver,但这段代码行吗

它给出了错误“
变异。addedNodes
不是函数”,我还需要
removedNodes
我意识到

var observer = new MutationObserver(function(mutations) {
      mutations.forEach(function(mutation) {
        mutation.addedNodes.forEach(function(node) {
          if (node.className == 'example') {
              ....
          }
        });
      });
    });
    observer.observe(document, {
      childList: true,
      subtree: true,
      attributes: false,
      characterData: false,
    });

.addedNodes
返回一个
节点列表
而不是一个
数组
,该数组没有
.forEach()
方法。尝试使用
Array.prototype.slice()
.addedNodes
强制转换到具有方法
.forEach()

var observer=新的突变观察者(函数(突变){
突变。forEach(功能(突变){
var节点=Array.prototype.slice.call(mutation.addedNodes);
forEach(函数(节点){
if(node.parentElement.className==“示例”){
警报(node.parentElement.className)
}
});
});
});
observer.observe(document.querySelector(“.示例”){
儿童名单:是的,
子树:对,
属性:false,
characterData:false,
});
var el=document.createElement(“div”);
el.className=“示例子项”;
document.querySelector(“.example”).appendChild(el)

等等,我需要
文档
成为
。示例
?因为我希望得到
.example
的任何子节点的通知,而不是
.example
itself@Maximilian“等等,我需要文档是.example?因为我希望得到.example的任何子节点的通知,而不是.example本身”Yes@Maximilian“这似乎不起作用!”可以用“似乎不起作用”来形容吗?可以创建JSFIDLE或plnkr来演示吗?行为上有一个区别:DOMNodeRemoved没有为观察到的节点触发。我应该使用家长吗?MutationObserver对我来说似乎毫无用处(@DenisKolodin“行为上存在差异:DOMNodeRemoved未针对观察到的节点触发”。您是否发布了描述问题的问题?您是否可以共享plnkr演示问题?