Jaki jest cel metody selector
w metodzie jQuery on()
?jQuery na() selektorze
W jakiej sytuacji jest
$("#fish").on("click", ".button", function() {
// something
});
lepiej niż, powiedzmy,
$("#fish").find(".button").on("click", function() {
// something
});
?
Szukałem na jQuery documention Znalezione
Jeżeli selektor jest pominięty lub null, obsługi zdarzeń jest określany jako bezpośredni lub bezpośrednio związany. Program obsługi wywoływany jest za każdym razem, gdy zdarzenie występuje na wybranych elementach, niezależnie od tego, czy występuje bezpośrednio na elemencie, czy też w bąblach z elementu potomnego (wewnętrznego).
Po udostępnieniu selektora procedura obsługi zdarzenia jest określana jako delegowana. Program obsługi nie jest wywoływany, gdy zdarzenie występuje bezpośrednio na elemencie bound, ale tylko dla potomków (elementów wewnętrznych) pasujących do selektora. jQuery pę dza zdarzenie od celu zdarzenia do elementu, do którego jest podłĘ ... czony handler (tj. od najbliższego do najbardziej oddalonego elementu) i uruchamia program obsługujĘ ... cy wszystkie elementy wzdłuż tej ś cieżki pasujĘ ... ce do selektora.
mam rację, mówiąc, że różnica jest taka, że w moim pierwszym przykładzie, zdarzenie jest związane z #fish
, ale słucha tylko na imprezy propagacji znad .buttons
, natomiast w drugim przykładzie zdarzenie jest zobowiązany do każdy z .buttons
? Jeśli tak, jakie są tego konsekwencje? : S
Więc jeśli wydarzenie jest powiązane z #fish, po kliknięciu przycisku., Czy jest i tak, aby wiedzieć, który przycisk .Button został kliknięty? będzie to dotyczyło raczej #fish niż przycisku., prawda?
Pierwszy przykład działa dla elementów '.button' wewnątrz' # fish', które istnieją, gdy zdarzenie jest powiązane, lub w przyszłości. Drugi przykład uruchomi funkcję tylko w elementach '.button' wewnątrz' # fish', gdy zostanie utworzone powiązanie. – BenM