我有一个全选按钮可以帮我选中所有复选框,它工作正常,我得到了已检查项目的总数,然后如果我一个接一个地选中复选框,我也得到了计数,但问题是当我在选择了一些之后选择全部时,计数再次变为0。
this.countRecipients = function() {
$('.recipients').click(function() {
if ($(this).attr('data-count')) {
$(this).removeAttr('data-count');
} else {
$(this).attr('data-count', 1);
}
$('.value').html(self.countSelectedRecipies());
});
$('#checkAll').click(function() {
if ($('.recipients').attr('data-count')) {
$('.recipients').removeAttr('data-count');
self.countSelectedRecipies();
} else {
$('.recipients').attr('data-count', 1);
self.countSelectedRecipies();
}
});
}
答案 0 :(得分:0)
您可能想要遍历这些元素,如下所示:
$('#checkAll').click(function() {
$('.recipients').each(function() {
if ($(this).attr('data-count')) {
$(this).removeAttr('data-count');
} else {
$(this).attr('data-count', 1);
}
});
self.countSelectedRecipies();
});
另外,我需要检查是否使用$(this).is(':checked')
选中了复选框,而不是依赖第一个事件处理程序中的数据属性...