2011-07-12 9 views

答えて

46

あなたscroll down a bit場合は、以下を参照してください。

警告! MutationEventインターフェイスは、DOMレベル2 イベントで導入されましたが、ユーザエージェント間で完全にかつ相互運用可能に実装されていませんでした( )。さらに、 インターフェイスが設計通りにパフォーマンスと実装を導入している批判がありました チャレンジ突然変異イベントが解決するユースケースに対処するため、 の目的で新しい仕様が開発されていますが、より多くの場合は performant mannerです。したがって、本明細書は、レガシー行動の参照および完全性のための突然変異イベント を記載するが、MutationEventインターフェースおよびMutationNameEventインターフェースの両方の使用を非推奨にする。

交換用APIは完全にDOMレベルXの愚かさのすべてに優先しin the DOM Living Standardを指定しているmutation observers、です。

+0

あなたが意味する "上にスクロール"。 :-) –

+4

@ TJ - いいえ。上のものは* DOMNodeRemovedFromDocument *です。 :-) – RobG

+3

DOM Level 4の置き換えがhttp://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-observersになります.Chromium https:///bugs.webkit.org/show_bug.cgi?id=73851 –

18

私は交換が変異オブザーバーになると思う: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);