Czy jest jakiś sposób na wykonanie tego samego kodu dla różnych elementów na stronie?
$('.class1').click(function() {
some_function();
});
$('.class2').click(function() {
some_function();
});
zamiast tego zrobić coś takiego:
$('.class1').$('.class2').click(function() {
some_function();
});
Dzięki
.add()
działa również z obiektami jquery$('.class1, .class2')
i$('.class1').add('.class2')
? w jakim przypadku powinniśmy użyć.add()
?Zwykle używam
on
zamiastclick
. Pozwala mi dodawać więcej detektorów zdarzeń do określonej funkcji.Mam nadzieję, że to pomoże!
źródło
Upewnij się, że wstawiłeś spację jak $ ('. Class1, space here.class2'), bo inaczej to nie zadziała.
źródło
Po prostu użyj
$('.myclass1, .myclass2, .myclass3')
dla wielu selektorów. Ponadto nie potrzebujesz funkcji lambda, aby powiązać istniejącą funkcję ze zdarzeniem click.źródło
Inna alternatywa, zakładając, że twoje elementy są przechowywane jako zmienne (co często jest dobrym pomysłem, jeśli korzystasz z nich wielokrotnie w ciele funkcji):
Korzysta z łączenia łańcuchów jQuery i pozwala korzystać z referencji.
źródło
Jeśli masz lub chcesz zachować swoje elementy jako zmienne (obiekty jQuery), możesz również nad nimi zapętlić:
źródło
Dodaj listę klas oddzielonych przecinkami:
źródło
Możemy kodować w następujący sposób, użyłem tutaj zdarzenia rozmycia.
źródło
Mam link do obiektu zawierającego wiele pól wejściowych, które wymagają obsługi przez to samo zdarzenie. Więc po prostu używam find (), aby uzyskać wszystkie wewnętrzne obiekty, które muszą mieć zdarzenie
W przypadku, gdy twoje obiekty znajdują się o jeden poziom niżej, zamiast metody find () można użyć metody link child () .
źródło
Oprócz doskonałych przykładów i odpowiedzi powyżej możesz także wykonać „znajdź” dla dwóch różnych elementów za pomocą ich klas. Na przykład:
To powinno wypisać „HelloWorld”.
źródło