Jquery захватывает несколько событий формы в одной строке? - PullRequest
0 голосов
/ 16 августа 2010

У меня есть следующее для захвата события проверки флажка формы с id = "form1":

$('#form1 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
}

Теперь у меня есть другая форма (id = "form2") с флажками, для которых мне нужнообрабатывать события.Есть ли способ объединить обе формы в одну строку, и alert по-прежнему всплывает правильное значение?то есть что-то вроде

$('#form1 OR #form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
}

Ответы [ 3 ]

0 голосов
/ 16 августа 2010

Попробуйте это:

$('#form1, #form2').find('input:checkbox').click(function() { ... });

edit: это примечание, но используйте «input: checkbox» вместо «: checkbox».Это позволяет механизму селектора фильтровать только входные теги, которые являются флажками, а не все теги, которые являются флажками, и поэтому намного быстрее.

0 голосов
/ 16 августа 2010

Можно ли как-нибудь объединить обе формы в одну строку, чтобы в предупреждении все еще отображалось правильное значение?

Да:

Использование запятой

$('#form1 :checkbox, #form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
};

или с использованием add метода

$('#form1 :checkbox').add('#form2 :checkbox').click(function() {
  var $this = $(this);
  alert($this.val());
};

Подробнее:

0 голосов
/ 16 августа 2010

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

$('#form1 :checkbox, #form2 :checkbox').click(function() {

или .find(), чтобы сделать его немного короче, как это:

$('#form1, #form2').find(':checkbox').click(function() {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...