2012-03-12 17 views
16

Potrzebuję utworzyć detektor zdarzeń tak, że po dodaniu nowego elementu do dokumentu lub dowolnego jego elementu podrzędnego moja funkcja obsługi zdarzenia zostanie wywołana.Odsłuchiwanie zdarzeń, takich jak dodawanie nowych elementów w JavaScript

Wszelkie pomysły, jak to zrobić, używając?

+1

możliwe duplikat [Wykrywanie zmian w DOM] (http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom) –

+0

@zeacuss: przejdź tutaj http: // www .w3.org/TR/DOM-Level-2-Events/events.html # Events-EventListener – krish

Odpowiedz

23
.bind('DOMNodeInserted DOMNodeRemoved') 

tego są wydarzenia, aby sprawdzić element jest wkładana lub wyjmowana.

powiązać element nadrzędny z tym zdarzeniem.

i nazywają swoją funkcję w przewodnika

js skrzypce demo: http://jsfiddle.net/PgAJT/

kliknij tutaj np ... http://help.dottoro.com/ljmcxjla.php

+1

Demo jest idealne – zeacuss

+0

To działa świetnie, z wyjątkiem IE ... –

+6

jest teraz przestarzałe .. zobacz https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events – yomexzo

4

DOMNodeInserted jest przestarzałe w DOM Level 3 zalecenia. ich użycie spowalnia działanie przeglądarek (mówią). w zależności od tego, do czego jest to potrzebne, może być sens wywoływanie niestandardowego zdarzenia wewnątrz kodu, w którym wstawia się element.

+4

faktycznie, nie jestem tym, który dodaje węzły, więc nie mogę obsłużyć tego miejsca, w którym został dodany. – zeacuss

18

Mutacje są przestarzałe, należy zamiast tego użyć Mutation Observer. Możesz także użyć biblioteki arrive.js, która wykorzystuje wewnętrznie Mutation Observer i zapewnia ładną prostą api do słuchania w celu tworzenia i usuwania elementów.

$('#container').arrive('.mySelector', function(){ 
    var $newElem = $(this); 
}); 
+2

Bardzo ładna biblioteka! Rozwiązałem mój obecny numer i na pewno będę go używał w przyszłych projektach. Dzięki, Uzair! – mkp

Powiązane problemy