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>
.