2010-04-13 16 views
13

Załaduję zawartość do strony z ajaxem, do której dołączone są wydarzenia z kliknięciami na żywo. Wygląda na to, że po raz pierwszy ładuję tę zawartość, wszystko działa zgodnie z oczekiwaniami. Jeśli ponownie załaduję to, zdarzenia zostaną uruchomione dwukrotnie (po umieszczeniu punktów przerwania w kodzie). Co ja robię źle? Czy istnieje sposób, aby wyczyścić dom z tych elementów, zanim zostaną one ponownie załadowane?Wydarzenie na żywo jquery zostaje wykonane dwukrotnie

+6

Moja kryształowa kula nie jest dostępna już teraz, może możesz opublikować swój kod? –

Odpowiedz

32

Podejrzewam, że dzwonisz pod numer .live() na tych samych elementach. użyj .die() na tych elementach przed wywołaniem .live().

+0

Dobrze, spróbuję i zobaczę jak to działa. – Victor

22

naprawiłem to tak:

$('selector').die('click').live('click', function() { 
    // Do stuff here 
}); 
2

tylko potwierdzone. Używałem .live() i najpierw eksperymentowałem z .unbind().

końcowy:

$(".clickedClass").die("click").live("click", function() { 

}); 
0

Jeśli używasz na metodzie zamiast żywo. THEN

jQuery ('body'). Unbind(). On ('submit', 'form.make_commitment_form', function (e) {....});

Powiązane problemy