2013-11-01 160 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