2009-08-24 10 views
9

Moje pytanie jest nieco dziwne, ale czy mogę dodać zdarzenia dla elementów DOM (div), takich jak "onHtmlChange", aby otrzymać powiadomienie, gdy ten div zmienił ich zawartość?Czy javascript może nasłuchiwać "onDomChange" na wszystkich elementach Dom?

+0

Idealnie, nie powinny nigdy wymagać takiego zdarzenia. Co dokładnie zmieniłoby kod HTML dowolnego elementu? – James

+0

GMaps karmi DIV swoją zawartością. Ale podstawą mojego pytania jest po prostu naśladowanie podejścia do programowania danych: P – Frangossauro

Odpowiedz

7

Zapoznaj się z DOMNodeInserted i DOMNodeRemoved.

Ben Nadel niedawno na blogu, co następuje: Detecting When DOM Elements Have Been Removed With jQuery

+0

Wygląda na to, że OP chce wiedzieć, kiedy zmieniła się zawartość HTML wewnątrz div. – seth

+0

@seth -Browniki korzystające z modelu W3C powinny uruchamiać zarówno 'DOMNodeInserted', jak i' DOMNodeRemoved' przy zmianie zawartości węzła, nawet jeśli jest to tylko węzeł tekstowy (tylko testowany FF3). Sztuczka IE wspomniana w łączonym artykule może łatwo zostać rozszerzona na '.html()' i '.text()', aby naśladować to. –

1

DOMNodeInserted i DOMNodeRemoved są częścią Mutation Events który jest teraz przestarzała. Dlatego musisz spojrzeć na Mutation Observer. Zrobiłem to samo w jednym z moich projektów, co jest potrzebne, aby wysłuchać zmian DOM pewnego elementu., Np. DOM dołączyć, usunąć, atrybut i zmiany danych.

Te linki pomogą Ci:

  1. http://gabrieleromanato.name/jquery-detecting-new-elements-with-the-mutationobserver-object/
  2. https://github.com/kapetan/jquery-observe
  3. Is there a JavaScript/jQuery DOM change listener?
Powiązane problemy