0

我在使用 jquery 时遇到问题。

我有一个 ID 为“#checkAll”的复选框和一个类为“checkboxes”的复选框。当检查带有ID“ CheckAll”的复选框时,我想打开所有复选框,当检查带有ID“ CheckAll”的复选框时,我想关闭所有复选框。

但是,现在的情况是,当我第一次单击复选框(#checkAll)时,所有其他复选框都打开了,当我第一次打开 ckeckbox(#checkAll)时,所有其他复选框也都关闭了。

但是,当我第二次尝试单击复选框(#checkAll)时,所有其他复选框都没有打开。

我不知道为什么会这样。

请帮帮我!

这是我的 javascript 处理事件。

ADMIN.event = (function() {

    function _init(){

        $(function(){

            var checkAll = $('#checkAll'),
                checkboxes = $('.checkboxes');

            checkAll.click(function(){
                if($(this).is(':checked')){
                    checkboxes.attr('checked', 'checked');
                } else {
                    checkboxes.removeAttr('checked');
                }
            })

        });

    }


    _init();


}());

这是我在 php.ini 中的视图文件。

<table class="fullTable">
    <tr class="listTableTr">
        <th class="listTableTh tinyTh"><input type="checkbox" name="" id="checkAll" /></th>
        <th id="articleTitleTh" class="listTableTh">title</th>

    </tr>

    <?php foreach($postData as $post): ?>

        <td class="listTableTd"><input type="checkbox"  name="" class="checkboxes" /></td>
        <td class="listTableTd"><a href="<?php echo 'index.php?r=admin/post/edit&post='.$post['id']; ?>"><?php echo $post['title'];?></a></td>

    <?php endforeach; ?>                        

</table>
4

3 回答 3

3

试试.prop()喜欢

checkAll.click(function(){
    checkboxes.prop('checked',this.checked); 
});

即使与.on()like一起使用也更好

checkAll.on('click' , function(){
    checkboxes.prop('checked',this.checked); 
});
于 2013-08-27T06:57:53.893 回答
1

试试这个 :

    $('#checkAll').on('click',function(){
        if($("#checkAll").is(':checked')) {
            $('.checkboxes').attr('checked',true);
        } else {
            $('.checkboxes').attr('checked',false);
        }
    });
于 2013-08-27T07:04:48.047 回答
1

演示
试试这个

$("#checkAll").click(function () {
    if ($(this).is(":checked")) 
    $(".checkboxes").prop("checked","checked");
    else
         $(".checkboxes").prop("checked",false);
});
于 2013-08-27T07:09:04.527 回答