我有这个工作,但是有一个小问题...
我有2个块的3个复选框。A组和B组
如果我为组A选择“全部”,则将切换组A中的所有复选框状态。
如果然后为组BI选择“全部”,则必须单击两次以使组B复选框状态更改。
这是我正在使用的JQuery:
var checked = false;
$('.all').click(function () {
e = $(this).attr('name');
checked = !checked;
$('input[class=' + e ).prop('checked', checked);
});
我创建了一个小提琴示例http://jsfiddle.net/1kgneajL/
为什么我必须在B组中单击两次?我计划添加更多的组,所以我需要确保这不会变得更糟。如果我有10个小组会怎样?
有什么办法解决这个问题?
谢谢
因为这:
var checked = false;
两个组都使用相同的变量...因此,当您将组A设置为false时,当您单击组B时,它也将为false。
在组上下文中存储组检查的快速修复程序:
$('.all').click(function () {
e = $(this).attr('name');
checked = $(this).attr('checked');
checked = !checked;
$(this).attr('checked', checked);
$('input[class=' + e + ']').prop('checked', checked);
});
不再需要checked
变量了
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句