Состояние флажка JQuery обновляется по-разному между щелчком группы () и $ .each (obj.click ()) - PullRequest
1 голос
/ 31 мая 2010

Код ниже не работает в том же поведении. Последовательность событий click и вызова foo () отличается. Я хочу знать, почему они ведут себя по-разному между вызовом click () и повторением объектов перед вызовом click () для каждого.

<script type="text/javascript">

      function foo(obj){
        alert(obj.id+" ->"+obj.checked);
      }

      function clickAll(val){
        if (val) {
          $(":checkbox").click();
        } else {
          $(":checkbox").each(function(i,obj){
              obj.click();
              });
        }
      }
    </script> 
  </head>
<body>
<input type="checkbox" id="check1" onclick="foo(this)" /> a
<input type="checkbox" id="check2" onclick="foo(this)" /> b
<input type="checkbox" id="check3" onclick="foo(this)" /> c
<input type="button" onclick="clickAll(true)" value="click all" />
<input type="button" onclick="clickAll(false)" value="click all each" />
</body>

Ответы [ 2 ]

0 голосов
/ 31 мая 2010
$(":checkbox").each(function(i,obj){ // i is an index and obj is a dom element object... 
    //obj.click();  not a jQuery Object that is why it's not working as expected
    $(obj).click(); // do this instead..
});
0 голосов
/ 31 мая 2010

Вместо…

$(":checkbox").each(function(i,obj){
 obj.click();
});

Попробуйте:

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