2011-12-08 19 views

Odpowiedz

43

Dla przyszłych elementów wewnątrz #dataTable tbody Twój kod powinien działać. Aby zlecić kliknij całą drogę aż do dokumentu, dzięki czemu ten sam obsługi dla przyszłej <tr> dowolnym miejscu na stronie, spróbuj:

$(document).on("click", "tr", function(event){ 
    alert($(this).text()); 
}); 
+0

Więc mówisz, że "na" jest również dla obecnego i przyszłego domu? –

+5

Tak, pod warunkiem, że wstawiony element znajduje się wewnątrz elementu związanego z wydarzeniem. – David

+0

Dokładnie to, czego potrzebowałem. Kocham Cię –

0

Musisz użyć jQuery .live() dla przyszłych elementów

Źle, jak to jQuery 1.7 (i było szybko w delegowania moją odpowiedź).

działa dla wszystkich (przyszłych) elementów.

+1

???? Im mówię o 1.7 + –

+1

Wrong. To jest 1,7. – SLaks

+0

Jest przestarzała w wersji 1.7, zamiast tego masz '' .on() '] (http://api.jquery.com/on/) –

1

To zajmie wszystkie <tr> s, bez względu na to, kiedy zostały utworzone, ale tylko w ramach istniejącego już #dataTable tbody. Jest to odpowiednik .delegate.

+0

. nie ma już żadnej różnicy między "już w dom" kontra "będzie w dom"? –

+0

Nadal istnieją różnice, ale delegate(), live() i on() mogą obsłużyć oba. – Stefan

+0

@Stefan od 1.7 Nie powinienem już używać live, a delegowanie jest jak w .... więc nie ma już żadnej różnicy ...... prawda? –

0

Z api.jquery.com/on/

.on() Sposób przykłada obsługi zdarzeń do aktualnie wybranego zestawu elementów w obiekcie jQuery. Od wersji jQuery 1.7 metoda .on() zapewnia wszystkie funkcje wymagane do dołączania procedur obsługi zdarzeń. Aby uzyskać pomoc dotyczącą konwertowania ze starszych metod zdarzeń jQuery, zobacz: : patrz .bind(), .delegate() i .live(). Aby usunąć zdarzenia związane z rozszerzeniem .on(), zobacz .off(). Aby dołączyć zdarzenie, które działa tylko raz, a następnie usuwa sam patrz .one()

iz api.jquery.com/live/

Jak jQuery 1.7, metoda .live() jest przestarzała. Użyj funkcji .on() do do dołączania procedur obsługi zdarzeń. Użytkownicy starszych wersji jQuery powinni używać opcji .delegate() zamiast opcji .live().

3

Dodawanie do Davids zaakceptowane odpowiedź, można również korzystać z tego rozwiązania wiąże wiele zdarzeń do selektor, a także wszystkie przyszłe pasujące elementy.

Na przykład element wejściowy.

$(document).on({ 
    focus:function(){ 
     alert($(this).val()); 
    }, 
    blur: function(){ 
     alert($(this).val()); 
    } 
}, 'input[type=text]'); 
Powiązane problemy