jQuery使用toggleClass选择所有复选框

时间:2013-10-14 14:42:56

标签: javascript jquery html css checkbox

我已经看过其他的例子但是没有成功地使其正常运行。我看到的例子也只是使用常规复选框。我已经使用一个类来使用精灵表对复选框进行样式化,因此在考虑这些其他示例的想法并将它们应用到我的案例时会遇到一些麻烦。

这是标记:

<div id="showHideAll"">Show/Hide All<input type="checkbox" id="allCheck" name="pinSet" class="pinToggles" onclick="checkAllLinks()">
    <label for="allCheck" class="css-label"></label></div>
</div>

<div>Opt1<input type="checkbox" id="opt1Check" name="pinSet" class="pinToggles" onclick="checkOpt1Links()">
    <label for="opt1Check" class="css-label"></label>
</div>

<div>Opt2<input type="checkbox" id="opt2Check" name="pinSet" class="pinToggles" onclick="checkOpt2Links()">
     <label for="opt2Check" class="css-label"></label>
</div>

<div>Opt3<input type="checkbox" id="opt3Check" name="pinSet" class="pinToggles" onclick="checkOpt3Links()">
     <label for="dinShopCheck" class="css-label"></label>
</div>

checked属性是使用css类更改sprite的内容。

input[type=checkbox].pinToggles:checked + label.css-label {
background-position: 0 -16px;
}

这大部分是针对其他功能的,但我认为我会在以防万一的情况下展示它。

这是我设置各个复选框的方式:

function checkOpt1Links(){
    $('#opt1 li a').toggleClass("inactive");

 if(opt1.getVisible() == true)
    {       
        opt1.setOptions({visible:false});
    }
    else
    {
        opt1.setOptions({visible:true});
    }
}

我正在寻找的是典型的全选复选框功能,如果您选中它们全部检查,如果您取消选中它们全部取消选中,如果您选中全部选中时单击一个框,则选择全部并单击复选框取消选中,反之亦然。我确实看过这个例子:Jquery "select all" checkbox但是很难让它成功。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

1)对changeclick按钮使用 checkbox 事件处理程序代替radio

你可以像这样简单

$('#showHideAll').on('change', 'input[type=checkbox]', function () {
    if ($('.pinToggles').is(':checked')) {
        $('.pinToggles').prop('checked', false)
    }
    else {
    $('.pinToggles').prop('checked', true)
    }
});

2)我已删除了下面class中的onclickcheckbox事件处理程序。

<强> HTML:

<div id="showHideAll">Show/Hide All<input type="checkbox" id="allCheck" name="pinSet" >
    <label for="allCheck" class="css-label"></label></div>
</div>

选中此JSFiddle