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>

ただし、ユーザーがページサイズを変更するたびに、「チェック」ボタンを2回クリックして、すべてを選択する機能を再び機能させる必要があります。問題が何であるか考えていますか?

問題を表示するには、ページ サイズを変更し、[すべてチェック] をクリックします。

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 に答える