diff --git a/src/pagination.js b/src/pagination.js index 88272e8ce1a6e8f12a6daf4412d5f215d55a0a08..e5336ac2f38ecf0ca8bc6f314ff71dc7a56f5f7b 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -204,7 +204,7 @@ // Previous page button if (showPrevious) { - if (currentPage === 1) { + if (currentPage <= 1) { if (!autoHidePrevious) { html += '
  • ' + prevText + '<\/a><\/li>'; } @@ -254,7 +254,7 @@ // Next page button if (showNext) { - if (currentPage == totalPage) { + if (currentPage >= totalPage) { if (!autoHideNext) { html += '
  • ' + nextText + '<\/a><\/li>'; } @@ -344,6 +344,9 @@ if (pageNumber > totalPage) return; } + // There is no data + if (totalNumber === 0) return; + // Pick data fragment in sync mode if (!self.isAsync) { render(self.getDataFragment(pageNumber)); @@ -541,7 +544,7 @@ // Get total number getTotalNumber: function() { - return this.model.totalNumber || attributes.totalNumber || 1; + return this.model.totalNumber || attributes.totalNumber || 0; }, // Get total page @@ -781,13 +784,14 @@ }); // Whether to load the default page + var validTotalPage = Math.max(self.getTotalPage(), 1) var defaultPageNumber = attributes.pageNumber; // Default pageNumber should be 1 when totalNumber is dynamic if (self.isDynamicTotalNumber) { defaultPageNumber = 1; } if (attributes.triggerPagingOnInit) { - container.trigger(eventPrefix + 'go', Math.min(defaultPageNumber, self.getTotalPage())); + container.trigger(eventPrefix + 'go', Math.min(defaultPageNumber, validTotalPage)); } } }; @@ -866,7 +870,7 @@ //totalNumberLocator: function() {}, // Total entries - totalNumber: 1, + totalNumber: 0, // Default page pageNumber: 1,