2013-07-06 14 views
13

Chcę powiązać wiele elementów, które są zdefiniowane jako zmienne. Wiem, że to możliwe:Powiązać procedurę obsługi zdarzeń z wieloma zmiennymi elementów w jQuery?

$('selector1, selector2').bind(...) 

Ale chcę zrobić coś takiego:

$($element1, $element2, $element3).bind(...) 

Jakieś pomysły?

+0

Prawdopodobnie nie najlepsze, ale dla zabawy można zrobić '$ ($ el ement1.selector + "," + $ element2.selector + "," + $ element3.selector) " – NicoSantangelo

Odpowiedz

17

Trzeba dodać je do jednego wyniku zestaw:

$element1.add($element2).add($element3).bind(...) 

Albo dla dowolnej liczby elementów:

var elems = [$element1, $element2, $element3, ...]; 
var $result = $(); 

$.each(elems, function() { 
    $result = $result.add(this); 
}); 

$result.bind(...); 

lub Array.reduce:

[$element1, $element2, $element3, ...].reduce(function($result, $elem) { 
    return $result.add($elem); 
}, $()).bind(...); 
2

Można użyć add();

var $all = $element1.add($element2).add($element3).bind(...); //.add(...) 
+0

Przetestowałeś to? – Blender

+0

Założę (prawdopodobnie błędnie), że elementy, w których js obiektów, zaktualizowałem moją odpowiedź właśnie w przypadku – NicoSantangelo

+0

Przetestuj to. jQuery owija obiekty tablicy inaczej niż owija obiekty DOM. – Blender

Powiązane problemy