Как связать события jQuery с несколькими ПРЕДВАРИТЕЛЬНЫМИ объектами jQuery - PullRequest
7 голосов
/ 09 августа 2010

Вот как можно связать несколько событий для пары селекторов jQuery:

$('#selector1,.selector2').bind('event', function (e, ui) {
   // Stuff
});

Но!Как вы привязываетесь к предварительно объявленным объектам jQuery.Пример:

var jSelector1 = $('#selector1');
var jSelector2 = $('.selector2');

Потому что следующее не работает:

jSelector1,jSelector2.bind(...);

и не работает:

$jSelector1,$jSelector2.bind(...);
($jSelector1,$jSelector2).bind(...);
(jSelector1,jSelector2).bind(...);

Ответы [ 3 ]

9 голосов
/ 09 августа 2010

Это должно работать, предполагая, что ваши переменные содержат объекты jQuery

$.each([jSelector1, jSelector2], function(i,v) {

    v.bind( ... );

});
4 голосов
/ 16 марта 2012

Или вы можете использовать .add().

var jSelector1 = $('#selector1'),
    jSelector2 = $('.selector2'),
    jSelector3 = $('.selector3');

jSelector1.add(jSelector2).add(jSelector3).bind('whatever', function() {
  doSomethingAwesome();
});
4 голосов
/ 09 августа 2010

вы должны быть в состоянии сделать что-то вроде этого:

var jSelector1 = $('#selector1');
var jSelector2 = $('.selector2');

$.each([jSelector1, jSelector2], function(index, value) { 
  value.bind(....); 
});
...