2013-11-01 114 views
0

我有jQuery所有設置找到我的全選複選框,但由於某種原因,它只在第二次點擊時全部選中。jquery複選框全選

任何想法將不勝感激。

$("h2 #selectAllState").click(function() { 

    var here = $(this).closest("div").attr('id'); 
    var stateDiv = "#"+here; 
    var cityList = "#state"+here; 


$(stateDiv+" h2 input:checkbox").change(function() { 
     $(cityList).find(':checkbox').prop("checked", this.checked); 
    }); 

}); 

或者是jfiddle

+0

直到第一次點擊,您纔會初始化更改功能。你會期待什麼? – isherwood

回答

6

你原來的問題是,你不具約束力的change處理,直至第一次點擊發生。我已經解決了這個問題,並設法使用遍歷函數來簡化您的代碼。

http://jsfiddle.net/w8ZLV/

$("#selectAllState").click(function() {  
    $(this).closest('div').find('.cityPick :checkbox').prop("checked", this.checked); 
}); 

此外,它看起來像你可能會重複這個塊的其他國家,在這種情況下,你可以有一個以上的元素用id #selectAllState,這是不允許的。如果我的假設是正確的,那應該改爲一個類而不是一個id。

+0

真棒謝謝!雅我使用PHP從數據庫拉。我仍然沒有把我的頭弄得「這個」,所以我在標籤的東西。 – user2945911