jq分頁功能。

分頁效果  (後端分頁,前端改變參數‘頁碼’請求數據)


html:

<div style="float: left;margin-right: 30px;" class="tcdPageCode"></div>

JS:

$(".tcdPageCode").createPage({
    pageCount://總頁數,
    current:1,
    backFn:function(p){
	//p爲返回的當前頁碼
    }
});	

css:

* {
			margin: 0;
			padding: 0;
			list-style: none;
		}
		a {
			text-decoration: none;
		}
		a:hover {
			text-decoration: none;
		}
		.tcdPageCode {
			padding: 15px 5px;
			text-align: left;
			color: #ccc;
			text-align: center;
		}
		.tcdPageCode a {
			display: inline-block;
			color: #6699cc;
			display: inline-block;
			height: 25px;
			line-height: 25px;
			padding: 0 5px;
			border: 1px solid #ddd;
			margin: 0 2px;
			border-radius: 4px;
			vertical-align: middle;
		}
		.tcdPageCode a:hover {
			text-decoration: none;
			border: 1px solid #6699cc;
		}
		.tcdPageCode span.current {
			font-size: 12px;
			display: inline-block;
			height: 25px;
			line-height: 25px;
			padding: 0 5px;
			margin: 0 2px;
			color: #fff;
			background-color: #6699cc;
			border: 1px solid #6699cc;
			border-radius: 4px;
			vertical-align: middle;
		}
		.tcdPageCode span.disabled {
			font-size: 12px;
			display: inline-block;
			height: 25px;
			line-height: 25px;
			padding: 0 5px;
			margin: 0 2px;
			color: #bfbfbf;
			background: #f2f2f2;
			border: 1px solid #bfbfbf;
			border-radius: 4px;
			vertical-align: middle;
		}
		.tapnum{
			color: #222;
			display: inline-block;
			height: 25px;
			line-height: 25px;
			padding: 0 5px;
			border: 1px solid #ddd;
			text-align: center;
			border-radius: 4px;
			vertical-align: middle;
			width:40px;
			margin: 0 5px 0 16px;
		}
		.tipsbtn{
			color: #6699cc;
			height: 25px;
			line-height: 25px;
			padding: 0 5px;
			border: 1px solid #ddd;
			margin: 0 2px;
			background: #fff;
			border-radius: 4px;
			margin-left: 5px;
			cursor: pointer
		}

第三方插件 JQ   JQ.page (考慮到頁面有篩選數據。且分頁需要動態生成的情況。點擊上下頁是要先解除(off)點擊事件再進行綁定on事件) ,增加跳轉按鈕,可以跳到任意頁面

(function($){ 
  var ms = { 
    init:function(obj,args){ 
      return (function(){ 
        ms.fillHtml(obj,args); 
        ms.bindEvent(obj,args); 
      })(); 
    }, 
    //填充html 
    fillHtml:function(obj,args){ 
      return (function(){ 
        obj.empty(); 
        //上一頁 
        if(args.current > 1){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="prevPage">上一頁</a>'); 
        }else{ 
          obj.remove('.prevPage'); 
          obj.append('<span class="disabled">上一頁</span>'); 
        } 
        //中間頁碼 
        if(args.current != 1 && args.current >= 4 && args.pageCount != 4){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+1+'</a>'); 
        } 
        if(args.current-2 > 2 && args.current <= args.pageCount && args.pageCount > 5){ 
          obj.append('<span>...</span>'); 
        } 
        var start = args.current -2,end = args.current+2; 
        if((start > 1 && args.current < 4)||args.current == 1){ 
          end++; 
        } 
        if(args.current > args.pageCount-4 && args.current >= args.pageCount){ 
          start--; 
        } 
        for (;start <= end; start++) { 
          if(start <= args.pageCount && start >= 1){ 
            if(start != args.current){ 
              obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+ start +'</a>'); 
            }else{ 
              obj.append('<span class="current">'+ start +'</span>'); 
            } 
          } 
        } 
        if(args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5){ 
          obj.append('<span>...</span>'); 
        } 
        if(args.current != args.pageCount && args.current < args.pageCount -2 && args.pageCount != 4){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+args.pageCount+'</a>'); 
        } 
        //下一頁 
        if(args.current < args.pageCount){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="nextPage">下一頁</a>'); 
        }else{ 
          obj.remove('.nextPage'); 
          obj.append('<span class="disabled">下一頁</span>'); 
        }
        obj.append('<input class="tapnum" value='+args.current+'><a href="javascript:;" class="tapTo">跳轉</a>'); 
      })(); 
    }, 
    //綁定事件 
    bindEvent:function(obj,args){ 
      return (function(){ 
      	//下一頁 
        obj.off("click").on("click","a.nextPage",function(){ 
          var current = parseInt($(".current").text())+1; 
          console.log(current,$('.tapnum').val())          
          console.log('輸入框',$('.tapnum').val())
          ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current); 
          } 
        }); 
        // 中間數字
        obj.on("click","a.tcdNumber",function(){ 
          var current = parseInt($(this).text()); 
          ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current); 
          } 
        }); 
        // 跳轉頁面
        obj.on("click","a.tapTo",function(){ 
          var current = parseInt($('.tapnum').val()); 
          if(current>args.pageCount){
          	alert('超過最大頁數')
          }else if(current<1){
                alert('頁數不能小於1')
          }else{
          	ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount}); 
		          if(typeof(args.backFn)=="function"){ 
		            args.backFn(current); 
		          } 
	          }
        }); 
        //上一頁 
        obj.on("click","a.prevPage",function(){ 
          var current = parseInt($(".current").text())-1;           
          ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current); 
          }
        }); 
      })(); 
    } 
  } 
  $.fn.createPage = function(options){ 
    var args = $.extend({ 
      pageCount : 10, 
      current : 1, 
      backFn : function(){} 
    },options); 
    ms.init(this,args); 
  } 
})(jQuery); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章