2011-05-18 76 views
3
<ul class="sorting" id="filter_by"> 
    <li><input checked="checked" type="checkbox" id="foobar" /><label for="chk1">foobar</label></li> 
    <li><input checked="checked" type="checkbox" id="foobaz"/><label for="chk2">baz</label></li> 
    <li><input checked="checked" type="checkbox" id="foofoo"/><label for="chk3">foo</label></li> 
</ul> 

我想知道有多少複選框被選中。所以我寫道:chekbox點擊創建問題?

$("#filter_by").change(function() { 
    alert('hi'); 
    var len_checked = $("#filter_by > li > input:checked").length; 
}); 

但每次它要求兩次。所以,警覺跑兩次。假設首先檢查所有三個 現在我取消選中了一個元素。然後警報運行兩次。我能找到原因?

回答

3

您應該.change處理程序綁定到複選框,而不是UL:

$("#filter_by :checkbox").change(function() { 
    alert('hi'); 
    var len_checked = $("#filter_by > li > input:checked").length; 
}); 

You can try it here.

這麼說,我不能重複你報道什麼,至少不會在Chrome的代碼你發佈了,所以別的東西可能會導致這種情況。你有沒有相關的細節?

+0

我包括我的js文件兩次。 BTW謝謝.. – 2011-05-18 10:17:35