DOMSubtreeModifiedイベントが非推奨になったのはなぜですか?代わりに何を使用する必要がありますか?
58361 次
2 に答える
53
少し下にスクロールすると、次のように表示されます。
警告!この
MutationEvent
インターフェイスはDOMレベル2イベントで導入されましたが、ユーザーエージェント間で完全かつ相互運用可能に実装されていません。さらに、インターフェースが設計どおりにパフォーマンスと実装の課題をもたらすという批判がありました。ミューテーションイベントが解決するユースケースに対処することを目的として、新しい仕様が開発中ですが、よりパフォーマンスの高い方法で行われます。したがって、この仕様では、レガシー動作の参照と完全性のためのミューテーションイベントについて説明していますが、MutationEvent
インターフェイスとインターフェイスの両方の使用は推奨されていませんMutationNameEvent
。
置換APIはミューテーションオブザーバーであり、DOMレベルXのすべての愚かさに取って代わるDOMLivingStandardで完全に指定されています。
于 2011-07-12T05:00:50.377 に答える
24
置き換えはミューテーションオブザーバーになると思います: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);
于 2013-09-23T22:58:40.603 に答える