为什么在DOM级别3中不推荐使用DOMSubtreeModified事件?

为什么不推荐使用 DOMSubtreeModified事件,我们应该使用什么呢?

如果你向下滚动一下 ,你会看到:

警告! MutationEvent接口是在DOM Level 2事件中引入的,但是还没有在用户代理之间完全实现互操作。 此外,还有人批评界面如所devise的那样引入了性能和实施方面的挑战。 正在开发一个新的规范,旨在解决突变事件解决的使用案例,但是以更高性能的方式。 因此,本规范描述了遗留行为的引用和完整性的突变事件,但不赞成使用MutationEvent接口和MutationNameEvent接口。

replaceAPI是突变观察者 ,这些观察者 在DOM Living标准中完全规定,取代所有的DOM级别X silliness。

我认为替代将是突变观察员: https : //developer.mozilla.org/en-US/docs/Web/API/MutationObserver

 var whatToObserve = {childList: true, attributes: true, subtree: true, attributeOldValue: true, attributeFilter: ['class', 'style']}; var mutationObserver = new MutationObserver(function(mutationRecords) { $.each(mutationRecords, function(index, mutationRecord) { if (mutationRecord.type === 'childList') { if (mutationRecord.addedNodes.length > 0) { //DOM node added, do something } else if (mutationRecord.removedNodes.length > 0) { //DOM node removed, do something } } else if (mutationRecord.type === 'attributes') { if (mutationRecord.attributeName === 'class') { //class changed, do something } } }); }); mutationObserver.observe(document.body, whatToObserve);