0

我有一个复选框字段,对应于我使用tablesorter插件输出的表的每一行。通过此字段检查,用户可以批量发布/删除 .etc。因此,我有一个全选按钮。问题是,在低数和高数之间改变分页和第四次后,一些不应该被检查的事情可能会保持检查状态。所以我只是想让复选框在用户更改分页时重置为默认的未选中值。我正在使用以下代码:

$(document).ready(function () {
    $('a.check').toggle(function () {
        $('input:checkbox').attr('checked', 'checked');
        $(this).text('Uncheck all')
    }, function () {
        $('input:checkbox').removeAttr('checked');
        $(this).text('Check all');
    });
    $('.pagesize').change(function(){
        $('input:checkbox').removeAttr('checked');
        $('a.check').text('Check all');
    });
});

<a href="#" class="check btn">Check All</a>
  <select class="pagesize">
    <?php echo arrayToSelect($pageSize, '5'); ?>
  </select>

但是,它可以工作,每当用户更改页面大小时,您必须单击“检查”按钮两次才能使全选功能再次起作用。知道问题可能是什么吗?

您可以通过更改页面大小来查看问题,然后尝试单击“全部检查”

http://jsfiddle.net/H7SJd/

4

2 回答 2

1

在此处查看演示http://jsfiddle.net/yeyene/H7SJd/5/

$(function() {
        $("table")
            .tablesorter({widthFixed: true, widgets: ['zebra']})
            .tablesorterPager({container: $("#pager")});
    });
$(document).ready(function () {
    $('a.check').click(function () {        
        $('input:checkbox').each(function(){
            if($(this).is(":checked")){
                $(this).removeAttr('checked');
                $('a.check').text('Check all');

            }
            else{
                $(this).attr('checked', 'checked');
                $('a.check').text('Uncheck all');
            }
        });
    });
    $('.pagesize').change(function(){
        $('input:checkbox').removeAttr('checked');
        $('a.check').text('Check all');
    });
});
于 2013-06-30T15:21:15.330 回答
1

改为测试:

演示

$(function () {
    $("table")
        .tablesorter({
        widthFixed: true,
        widgets: ['zebra']
    })
        .tablesorterPager({
        container: $("#pager")
    });
});
/* my version
$(document).ready(function () {
    $('a.check').toggle(function () {
        $('input:checkbox').attr('checked', 'checked');
        $(this).text('Uncheck all')
    }, function () {
        $('input:checkbox').removeAttr('checked');
        $(this).text('Check all');
    });
    $('.pagesize').change(function(){
        $('input:checkbox').removeAttr('checked');
        $('a.check').text('Check all');
    });
});
*/
$(document).ready(function () {
    $('a.check').click(function (e) {

        var txt = $(this).text();
        if (txt === 'Check All') {
            $('input:checkbox').prop('checked', true);            
            $(this).text('Uncheck All')
        } else { $('input:checkbox').prop('checked',false);
            $(this).text('Check All');
        }
    });
    $('.pagesize').change(function () {
        $('input:checkbox').prop('checked',false);
        $('a.check').text('Check All');
    });
});
于 2013-06-30T14:40:35.387 回答