我已经设置了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 :(得分:6)
您的原始问题是,在第一次点击发生之前,您没有绑定change
处理程序。我已经解决了这个问题,并设法使用遍历函数来简化代码。
$("#selectAllState").click(function () {
$(this).closest('div').find('.cityPick :checkbox').prop("checked", this.checked);
});
此外,看起来您可能正在为其他状态重复此块,在这种情况下,您可能有多个ID为#selectAllState
的元素,这是不允许的。如果我的假设是正确的,那应该改为一个类而不是一个id。