Potrzebuję dołączyć jedną obsługę zdarzeń do wielu elementów DOM za pomocą jQuery. Obecnie osiągam to za pomocą metody jQuery's each(). Zobacz poniżej:Najkrótszy sposób dołączania wielu elementów DOM do jednej obsługi zdarzeń za pomocą Jquery?
$([elm1, elm2, elm3]).each(function() {
this.click(eventHandler);
});
Zastanawiam się, czy istnieje sposób, aby to zrobić bez korzystania z każdej metody i zamknięcia. Myślałem, że będę w stanie zrobić coś takiego:
$(elm1, elm2, elm3).click(eventHandler);
Tego rodzaju oświadczenie prace przy użyciu prototype.js ale nie w jQuery.The Dlatego pytam się pytanie, ponieważ po użyciu zarówno prototype.js i jQuery Mam Zauważyłem, że jQuery wymaga prostszych instrukcji, aby osiągnąć te same zadania niemal w każdym obszarze, więc zakładam, że musi być lepszy sposób na zrobienie tego?
UPDATE
Po pewnym debugowania okazuje się, że mój oryginalny próba to zrobić przy użyciu:
$([elm1, elm2, elm3]).click(eventHandler);
Was braku becuase zmienne elm1, elm2 i elm3 gdzie tworzone przy użyciu jQuery Funkcja $. Tak więc problem nie zmieniło i dlaczego nie następujące prace:
var elm1 = $('#elm1');
var elm2 = $('#elm2');
var elm3 = $('#elm3');
$([elm1, elm2, elm3]).click(eventHandler);
jeszcze użyciu DOM następujące robi:
var elm1 = document.getElementById('elm1');
var elm2 = document.getElementById('elm2');
var elm3 = document.getElementById('elm3');
$([elm1, elm2, elm3]).click(eventHandler);
@Camsoft: jak powiedziałeś 'elm1 elm2 elm3' zostały utworzone za pomocą' $ '(oznacza dynamicznie), możesz użyć funkcji live jquery dla nich, jak wspomniałem wcześniej. – Sarfraz
@Sarfra Ok well wydaje się, że nie w pełni rozumiem, co robi jQuery tutaj. Zasadniczo zmienne elm1, elm2 i elm3 są argumentami funkcji, więc mogą być natywnymi obiektami DOM lub wersjami jQuery w zależności od tego, co jest używane, gdy funkcja jest wywoływana. – Camsoft