一尘不染

如何检测从dom元素添加/删除的元素?

javascript

说我有一个div#parent和我appendremove使用jQuery的元素。我如何检测div#parent元素上何时发生此类事件?


阅读 333

收藏
2020-05-01

共2个答案

一尘不染

不推荐使用以下方法

您可以使用DOMNodeInserted和DOMNodeRemoved

$("#parent").on('DOMNodeInserted', function(e) {
    console.log(e.target, ' was inserted');
});

$("#parent").on('DOMNodeRemoved', function(e) {
    console.log(e.target, ' was removed');
});
2020-05-01
一尘不染

不要使用诸如DOMNodeInserted和DOMNodeRemoved之类的突变事件。

相反,请使用DOM Mutation Observers,除IE10和更低版本(所有其他浏览器)(所有其他浏览器均支持)(我可以使用)。突变观察者旨在替换突变事件(已弃用),因为发现突变事件是由于其设计缺陷而导致的性能低下。

var x = new MutationObserver(function (e) {
  if (e[0].removedNodes) console.log(1);
});

x.observe(document.getElementById('parent'), { childList: true });
2020-05-11