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但李的不正確更新,成爲一個爛攤子。
<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>
。
你可以隨時進行調試 – akonsu
@akonsu肯定的是,我們是不是在宜家,所以我不指望一個預製的回答,你能指出我正確的方向壽? – Tristan
我會檢查循環退出後$ pager變量的值以及#pager元素的內容。如果你使用chrome,那麼你可以使用console.log API在瀏覽器的控制檯中顯示內容。 – akonsu