0
function pagination() {     
 $('.paginated').each(function() {
    var currentPage = 0;
    var numPerPage = $("#instancesPerPage").val();
    var $table = $(this);
    $table.bind('repaginate', function() {
        $table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show();
    });
    $table.trigger('repaginate');
    var numRows = $table.find('tbody tr').length;
    var numPages = Math.ceil(numRows / numPerPage);
    var $pager = $('<ul></ul>');

    for (var page = 0; page < numPages; page++) {
    var pageUrl = '<a href="#">' + page + '</a>';
        $('<li></li>').html(pageUrl).on('click', {
            newPage: page
        }, function(event) {
            currentPage = event.data['newPage'];
            $table.trigger('repaginate');
            $(this).addClass('active').siblings().removeClass('active');
        }).appendTo($pager);    
    }
    $pager.appendTo('#pager');
    $("ul li:first-child").addClass('active');
 });
};

テーブルに 8 行あり、numPerPage.value が 2 の場合、上記の関数は次のようになります。

<div class="pagination-instances pagination-small pagination-right" id="pager">
    <ul></ul>
    <ul>
        <li class="active"><a href="#">0</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>

別の numPerPage.value を選択するときに次の関数を呼び出した場合:

 $('#instancesPerPage').on("change", function() {
  pagination();
 });

テーブル ページは正しい numPerPage.value に変更されますが、li は正しく更新されず、混乱します。

<div class="pagination-instances pagination-small pagination-right" id="pager">
    <ul></ul>
    <ul>
        <li class="active"><a href="#">0</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
    <ul>
        <li class="active"><a href="#">0</a></li>
        <li><a href="#">1</a></li>
    </ul>
    <ul>
        <li class="active"><a href="#">0</a></li>
        <li><a href="#">1</a></li>
    </ul>
</div>

どうやらこれは私が使用しているappendToと関係があるようですが、それを修正する方法がわかりません。また、空の がある理由もわかりません<ul></ul>

4

1 に答える 1