JQuery выбрать флажок по Div - PullRequest
       25

JQuery выбрать флажок по Div

4 голосов
/ 01 декабря 2009

Мне интересно, есть ли способ в jQuery установить / снять флажок, когда кто-то щелкает по всему слою div. Похоже на массивную область выделения.

Есть идеи?

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

<fieldset>
    <div>
        <input type="checkbox" id="Checkbox1" />
    </div>
    Person 1<br />
</fieldset>
<fieldset>
    <div >
        <input type="checkbox" id="Checkbox2" />
    </div>
    Person 2<br />
</fieldset>

Ответы [ 5 ]

6 голосов
/ 01 декабря 2009
$('fieldset div').bind('click', function() {
    var checkbox = $(this).find(':checkbox');

    checkbox.attr('checked', !checkbox.attr('checked'));
});
6 голосов
/ 01 декабря 2009

Возможно, используйте выбранный div в качестве родителя.

$(function() {
     $('#divId').toggle(
       function(event) {
         $(this).find('input').attr('checked', true);
       },
       function(event) {
         $(this).find('input').attr('checked', false);
       }
     );
 });

Это должно установить только флажки внутри #divId, по которому щелкнули.

4 голосов
/ 09 декабря 2010

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

$('input').change(function() {
    console.log('change triggered')
}).click(function(event) {
    event.stopPropagation()
})

$('div').click(function() {
    var c = $this.find('input')
    c.attr('checked', (!c.is(':checked')).change()
})
0 голосов
/ 01 декабря 2009
$(function() {
          $('#divId').toggle(
            function(event) {
              $('input[name=foo]').attr('checked', true);
            },
            function(event) {
              $('input[name=foo]').attr('checked', false);
            }
          );
      });
0 голосов
/ 01 декабря 2009

Ваш флажок все флажки:

<input type="checkbox" id="checkAll" /> Check All

И ваш код JS:

  $('#checkAll').click(function() {
        if($(this).attr('checked')) {
            $('input:checkbox').attr('checked', false);
        } else {
            $('input:checkbox').attr('checked', true);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...