Привязать событие JavaScript jQuery click к ярлыку И на флажке одновременно - PullRequest
13 голосов
/ 08 февраля 2012

Я использую метки для своей формы, например:

<label for="foo" id="bar">Label</label>
<input type="checkbox" id="foo" />

Я хочу скрыть элемент, когда пользователь снимает флажок, и отображать его в противном случае.

Проблемаесли я связываю событие click с «foo», оно будет работать только тогда, когда пользователь нажимает на сам флажок, а не на ярлык.Следовательно, мне также нужно привязать событие клика на ярлыке?Или я должен заключить оба элемента в промежуток?Мой HTML уже содержит 2344 элемента, поэтому я хотел бы сделать это, не добавляя ничего и не удваивая код JavaScript или селектор, если это возможно.

Ответы [ 2 ]

14 голосов
/ 08 февраля 2012

Вместо привязки к событию click() следует выполнить привязку, используя событие change(), однако, если это изменение сработает, результат будет таким же:

$('#foo').change(
    function(){
        // do whatever
    });

Ссылки:

3 голосов
/ 08 февраля 2012

Событие change должно запускаться для input при нажатии label или input:

$("#foo").change(function () { ... });

Пример http://jsfiddle.net/andrewwhitaker/6LMXW/

...