假设我有 adiv#parent
和 Iappend
以及remove
使用 jquery 的元素。我如何能够检测到此类事件何时发生在div#parent
元素上?
如何检测从 dom 元素中添加/删除的元素?
IT技术
javascript
jquery
html
2021-02-11 23:53:02
3个回答
不要使用像 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 });
按照@Qantas 在他的回答中的建议使用Mutation Observers
以下方法已弃用
您可以使用DOMNodeInserted和DOMNodeRemoved
$("#parent").on('DOMNodeInserted', function(e) {
console.log(e.target, ' was inserted');
});
$("#parent").on('DOMNodeRemoved', function(e) {
console.log(e.target, ' was removed');
});
你应该绑定DOMSubtreeModified
事件
$("#parent").bind("DOMSubtreeModified",function(){
console.log('changed');
});
其它你可能感兴趣的问题