2015-05-15 6 views
0

Мне нужно связать одно и то же событие (например, click) с n элементы jquery. Я знаю, что могу достичь этого результата легко с селектором:Связать событие с несколькими элементами jquery одновременно

$("#first, #second, .third").on("click", function(){}); 

но что, если вместо селектора, я хочу использовать список элементов JQuery?

Это решение я использую сейчас, предположим, что вы получите $first и $second как результат функции:

var $first = $("#first"); 
var $second = $("#second"); 

$([$first[0], $second[0]]).on("click", function(){ 
    alert("click " + this.innerText) 
}); 

находят скрипку, чтобы играть с здесь: https://jsfiddle.net/0z2r55d6/

, как вы можете см. Мне нужно извлечь, для каждого элемента jquery, элемент HTML и вставить его в массив. Я нахожу это довольно уродливым и неудобным. Есть ли лучший способ добиться того же результата? Я не нашел ничего в документации jquery.

Благодаря

+2

'$ first.add ($ второй) .add ($ третья) .он ('щелчок', обработчик);' Или использовать общий class вместо –

+0

@ A.Wolff Это работало как шарм, спасибо. Пожалуйста, ответьте своим решением, чтобы я мог его принять :) – BeNdErR

+0

Извините, я был очень занят, не успел дать соответствующий ответ. Вы должны принять ответ Апуля :) –

ответ

1

Использование JQuery add() метод:

$first.add($second).add($third).on('click', handler); 
Смежные вопросы