$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});
czy ta składnia jest dla tr, które są już na stronie?jQuery Funkcja dla przyszłych elementów?
a jeśli nie, jaka jest składnia przyszłych elementów tr?
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});
czy ta składnia jest dla tr, które są już na stronie?jQuery Funkcja dla przyszłych elementów?
a jeśli nie, jaka jest składnia przyszłych elementów tr?
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());
});
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.
???? Im mówię o 1.7 + –
Wrong. To jest 1,7. – SLaks
Jest przestarzała w wersji 1.7, zamiast tego masz '' .on() '] (http://api.jquery.com/on/) –
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
.
. nie ma już żadnej różnicy między "już w dom" kontra "będzie w dom"? –
Nadal istnieją różnice, ale delegate(), live() i on() mogą obsłużyć oba. – Stefan
@Stefan od 1.7 Nie powinienem już używać live, a delegowanie jest jak w .... więc nie ma już żadnej różnicy ...... prawda? –
.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()
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().
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]');
Więc mówisz, że "na" jest również dla obecnego i przyszłego domu? –
Tak, pod warunkiem, że wstawiony element znajduje się wewnątrz elementu związanego z wydarzeniem. – David
Dokładnie to, czego potrzebowałem. Kocham Cię –