【问题标题】:blade pagination start data page 0 label 1 using jquery刀片分页开始数据页0标签1使用jquery
【发布时间】:2018-04-24 20:30:18
【问题描述】:

我正在为我的项目使用刀片分页。

分页工作正常。

现在我想做个喜欢,

  1. 数据页应该从0,1,2,3...开始,标签应该 从1,2,3,4...开始

jQuery 脚本

    $.fn.bladePagination = function(options) {
    	if(typeof(options) === 'object' || typeof(options) === 'undefined') {
    		var settings = $.extend({}, $.fn.bladePagination.defaults, options);
    		return this.each(function() {
    			var jqPagination = $(this);
    			if(jqPagination.hasClass('slice-pagination')) {
    				createPagination(jqPagination, settings);
    				initPageClick(jqPagination, settings);
    			}
    		});
    	}
    };
       
    /*==============================================
     * default options
     *==============================================
     */
    $.fn.bladePagination.defaults = {
    	maxPageNum: 5,
    	firstLabel: '|&lt;', // |<
    	prevLabel: '&lt;',   // <
    	nextLabel: '&gt;',   // >
    	lastLabel: '&gt;|',  // >|
    	moreLabel: '...',
    	rebuildAfterClick: false,
    	clickPage: function(page, jqPagination) {}
    };
    
    /*==============================================
     * private functions
     *==============================================
     */
    var createPagination = function(jqPagination, settings) {
    	var currPage = Number(jqPagination.attr('data-current'));
    	var totalPage = Number(jqPagination.attr('data-total'));
    	var pageShowArray = new Array();
    	
    	//first page number changed into zero
    	pageShowArray.push({
    		type: 'page first' + ((1 == currPage) ? ' disabled' : '')
    		, page: 1
    		, show: settings.firstLabel
    	});
    	
    	//previous page
    	pageShowArray.push({
    		type: 'page prev' + ((1 == currPage) ? ' disabled' : '')
    		, page: (currPage <= 1) ? 1 : (currPage - 1)
    		, show: settings.prevLabel
    	});
    	
    	//page number
    	var pageNumArray = new Array();
    	var leftPageNum = (settings.maxPageNum - 1) / 2;
    	var rightPageNum = settings.maxPageNum - 1 - leftPageNum;
    	if(currPage - leftPageNum < 1) {
    		for(var i = leftPageNum; i > 0; i --) {
    			var page = currPage - i;
    			if(page < 1) {
    				rightPageNum ++;
    			} else {
    				pageNumArray.push(page);
    			}
    		}
    		pageNumArray.push(currPage);
    		for(var i = 1; i <= rightPageNum; i ++) {
    			var page = currPage + i;
    			if(page > totalPage) break;
    			pageNumArray.push(page);
    		}
    	} else {
    		for(var i = rightPageNum; i > 0; i --) {
    			var page = currPage + i;
    			if(page > totalPage) {
    				leftPageNum ++;
    			} else {
    				pageNumArray.unshift(page);
    			}
    		}
    		pageNumArray.unshift(currPage);
    		for(var i = 1; i <= leftPageNum; i ++) {
    			var page = currPage - i;
    			if(page < 1) break;
    			pageNumArray.unshift(page);
    		}
    	}
    	if(pageNumArray[0] > 1) {
    		pageShowArray.push({
    			type: 'more'
    			, page: -1
    			, show: settings.moreLabel
    		});
    	}
    	for(var i = 0; i < pageNumArray.length; i ++) {
    		var pageNum = pageNumArray[i];
    		pageShowArray.push({
    			type: 'page' + ((pageNum == currPage) ? ' active' : '')
    			, page: pageNum
    			, show: pageNum
    		});
    	}
    	if(pageNumArray[pageNumArray.length - 1] < totalPage) {
    		pageShowArray.push({
    			type: 'more'
    			, page: -1
    			, show: settings.moreLabel
    		});
    	}
    	
    	//next page
    	pageShowArray.push({
    		type: 'page next' + ((totalPage == currPage) ? ' disabled' : '')
    		, page: (currPage >= totalPage) ? totalPage : (currPage + 1)
    		, show: settings.nextLabel
    	});
    	
    	//last page
    	pageShowArray.push({
    		type: 'page last' + ((totalPage == currPage) ? ' disabled' : '')
    		, page: totalPage
    		, show: settings.lastLabel
    	});
    	
    	//create page
    	jqPagination.empty();
    	for(var i = 0; i < pageShowArray.length; i ++) {
    		var pageShow = pageShowArray[i];
    		var html = '<li class="' + pageShow.type + '" data-page="' + pageShow.page + '">' + pageShow.show + '</li>';
    		jqPagination.append(html);
    	}
    }
    
    var initPageClick = function(jqPagination, settings) {
    	var jqPageSet = jqPagination.find('li.page');
    	
    	//event handler
    	jqPageSet.off('click');
    	jqPageSet.click(function() {
    		var jqPage = $(this);
    		if(! (jqPage.hasClass('active') || jqPage.hasClass('disabled'))) {
    			var page = jqPage.data('page');
    			settings.clickPage(page, jqPagination);
    			
    			if(settings.rebuildAfterClick) {
    				//rebuild
    				createPagination(jqPagination, settings);
    				initPageClick(jqPagination, settings);
    			}
    		}
    	});
    }

我想在这里改变一些东西

    var html = '<li class="' + pageShow.type + '" data-page="' + pageShow.page + '">' + pageShow.show + '</li>';

我正在使用其他一些库来获取图像,图像值从 0 开始,在那个库中我无法进行更改。

我希望像下面这样开始

<li data-page='0'>1</li>
<li data-page='1'>2</li>
<li data-page='2'>3</li>

【问题讨论】:

  • 假设pageShow.show实际上是向用户显示页码,为什么不使用pageShow.show + 1
  • @Scaramouche 它应该开始
  • 1
  • 所以,这正是我建议的,注意只给pageShow.show加1,而不是pageShow.page,明白了吗?
  • @Scaramouche 已经从 '1' 开始 'pageShow.page' 和 "pageShow.show" 。现在我想要的是 'pageShow.show' 应该从 '1' 和 'pageShow.page' 开始应该从'0'开始
  • 好吧,也许我理解错了,我以为他们从0开始,如果他们从1开始,从pageShow.show中减去1,看,应该是这样的:var html = '&lt;li class="' + pageShow.type + '" data-page="' + (pageShow.page-1) + '"&gt;' + pageShow.show + '&lt;/li&gt;';
  • 标签: javascript jquery pagination


    【解决方案1】:

    试试这个:

    var html = '<li class="' + pageShow.type + '" data-page="' + pageShow.page + '">' + (parseInt(pageShow.page)+1) + '</li>';
    

    也许它对你有用。

    【讨论】:

    • 试试这个:var html = '
    • ' + (parseInt(pageShow.page )+1) + '
    • ';
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签