jQuery切换复选框的多个块

火箭

我有这个工作,但是有一个小问题...

我有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个小组会怎样?

有什么办法解决这个问题?

谢谢

瓦格纳·伦纳迪(Wagner Leonardi)

因为这:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章