2011-07-12 13 views

cevap

46

Eğer scroll down a bit varsa, bkz:

Uyarı! MutationEvent arabirimi, DOM Düzey 2 Olayları'nda tanıtıldı, ancak kullanıcı aracıları arasında henüz tamamen ve birlikte çalışabilir bir şekilde uygulanmadı. Ayrıca, tasarlandığı gibi arabiriminin, bir performans ve uygulama yüklemesini tanıttığı yönünde eleştiriler olmuştur. Mutasyon olaylarının çözdüğü kullanım durumlarına hitap eden hedefiyle, ancak daha fazla performans tarzında yeni bir spesifikasyon geliştirilmektedir. Bu nedenle, bu belirtim, eski davranışın referansı ve tamlığı için mutasyon olaylarını açıklar, ancak hem MutationEvent arabiriminin hem de MutationNameEvent arabiriminin kullanılmasını reddeder.

değiştirme API tam olarak tüm DOM seviyesi X sersemlik supercedes in the DOM Living Standard belirtilen olan mutation observers olup.

+0

Şunu "yukarı kaydırarak". :-) –

+4

@ TJ - yokuş aşağı. Yukarıdaki, * DOMNodeRemovedFromDocument *. :-) – RobG

+3

Değiştirme, DOM Seviye 4'te http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-observers adresinde gelir ve Chromium https'de bazı ilerlemeler var gibi görünüyor://bugs.webkit.org/show_bug.cgi?id=73851 –

18

Ben yedek mutasyon gözlemciler olacağını düşünüyorum: 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); 
İlgili konular