2013-11-22 16 views

cevap

18

Kullanım Mutation Observers onun answer

kullanabilirsiniz olay DOMSubtreeModified bağlamak gerekir DOMNodeInserted ve DOMNodeRemoved

$("div#parent").on('DOMNodeInserted', function(e) { 
    console.log(e.target, ' was inserted'); 
}); 

$("div#parent").on('DOMNodeRemoved', function(e) { 
    console.log(e.target, ' was removed'); 
}); 

MDN Docs

+4

Mutasyon olaylar kullanımdan kaldırılmıştır, bu cevap artık doğru biri olmalıdır. Mutasyon Gözlemciler Mutasyon Etkinlikleri'nin yerine _designed edildi, bu yüzden Qantas cevabı doğru olanıdır. https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events ve https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver – Parziphal

3

You @Qantas önerdiği gibi

$("#parent").bind("DOMSubtreeModified",function(){ 
    console.log('changed'); 
}); 

http://jsfiddle.net/WQeM3/

+0

'DOMSubtreeModified' olaylar kaldırıldı: [Kullanabilir miyim] (https://caniuse.com/#search=DOMSubtreeModified) – Cody

46

DOMNodeInserted ve DOMNodeRemoved gibi mutasyon olaylarını kullanmayın.

yerine, IE10 hariç tüm modern tarayıcılarda desteklenir ve DOM Mutation Observers kullanmak düşük (Can I use). Mutasyon gözlemcilerinin, flaws in its design nedeniyle düşük performansa sahip oldukları tespit edilen mutasyon olaylarının (kullanımdan kaldırılmış) değiştirilmesi amaçlanmıştır.

var x = new MutationObserver(function (e) { 
    if (e[0].removedNodes) console.log(1); 
}); 

x.observe(document.getElementById('parent'), { childList: true }); 
+4

Cevabınız için teşekkürler, * Mutasyon Gözlemcilerin * kötü bir davranışı vardır: Daha sonra ağaca bağlanacak olan düğüme gözlemci yerleştirmek istiyorum. Ebeveyni bilmiyorum ('DOMNodeRemoved' ile yapabilirim. Herhangi bir fikir var mı? Düğümün kendi kendini yok etmesini istiyorum. – DenisKolodin

+0

@DenisKolodin vay, bu yorumu görmedim, üzgünüm. Bu soru] (https://stackoverflow.com/q/31798816/2074608) Bu belge düzeyinde bir olay yerleştirmek anlamına gelir, ancak mutasyon olayları büyük bir performans cezası var, büyük olasılıkla zaten önemli değil. –