2014-10-20 2 views
0

Я новичок в jquery или javascript. И мне интересно, так или иначе, чтобы написать событие click для нескольких элементов и нескольких функций.jquery on() для нескольких элементов и нескольких функций

Например, у меня есть много кнопок, которые будут выполнять различные функции при нажатии. Есть ли все-таки включить все функции в событие 1 клик? Как «документ при нажатии», «кнопка1» будет выполнять «функцию ...», «кнопка2» будет выполнять «функцию ...».

Больше похоже на корпус переключателя в стиле?

+0

, то вам необходимо определить каждую функцию по отдельности, и вы можете иметь атрибут каждого кнопочного элемента данных, затем Вы можете работать один клик обработчик событий для всех кнопки –

+0

Спасибо @GeorgeGarchagudashvili за то, что вы ответили быстро, я нашел 1 аналогичный ответ, [ссылка] (http://codereview.stackexchange.com/questions/18160/different-way-of-writing-multiple-click-functions) , это то, что вы имеете в виду? –

+0

Да, точно! Nice discovery;)) –

ответ

1

Вы можете сделать это, да, но это не было бы лучшей практикой. Это будет выглядеть примерно так:

$(document).on("click", "button", function() { 
    switch (this.id) { // (Or whatever you want to use to differentiate the buttons) 
     case "button1": 
      // Do button1's stuff 
      // ... 
      break; 
     case "button2": 
      // Do button2's stuff 
      // ... 
      break; 
     // ...and so on... 
    } 
}); 

Но гораздо лучше использовать отдельные обработчики. Они могут все еще быть делегированы, если вы добавляете и динамически убирая кнопки:

$(document) 
    .on("click", "#button1", function() { // Again, it doesn't have to be an id... 
     // button1's stuff here 
    }) 
    .on("click", "#button2", function() { // ...just whatever differentiates the buttons 
     // button2's stuff here 
    }); 
+1

И если элементы статические на странице, '$ (" # button1 "). On (" click ", функция() {' inside' document.ready' будет еще лучше. – Regent

+0

Спасибо @TJ Crowder –

+0

@Regent, разве это не сделает 1 обработчик событий для каждой кнопки? –

Смежные вопросы