| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | 
							- ;(function ($, window, document, undefined) {
 
-     'use strict';
 
-     function Paging(element, options) {
 
-         this.element = element;
 
-         this.options = {
 
-             nowPage: options.nowPage || 1, // 当前页码
 
-             pageNum: options.pageNum, // 总页码
 
-             buttonNum: (options.buttonNum>=5?options.buttonNum:5) || 7,// 页面显示页码数量
 
-             callback: options.callback // 回调函数
 
-         };
 
-         this.init();
 
-     }
 
-     Paging.prototype =  {
 
-         constructor : Paging,
 
-         init : function() {
 
-             this.createHtml();
 
-             this.bindClickEvent();
 
-             this.disabled();
 
-         },
 
-         createHtml : function(){
 
-             var me = this;
 
-             var nowPage = this.options.nowPage;
 
-             var pageNum = this.options.pageNum;
 
-             var buttonNum = this.options.buttonNum;
 
-             var content = [];
 
-             content.push("<ul>");
 
-             content.push("<li class='xl-prevPage'>上一页</li>");
 
-             //页面总数小于等于当前要展示页数总数,展示所有页面
 
-             if(pageNum <= buttonNum){
 
-                 for(var i=1; i<=pageNum; i++){
 
-                     if (nowPage !== i) {
 
-                         content.push("<li>"+i+"</li>");
 
-                     } else {
 
-                         content.push("<li class='xl-active'>"+i+"</li>");
 
-                     }
 
-                 }
 
-             }else if(nowPage <= Math.floor(buttonNum / 2)){
 
-                 //当前页面小于等于展示页数总数的一半(向下取整),从1开始
 
-                 for(var i=1;i<= buttonNum-2;i++){
 
-                     if (nowPage !== i) {
 
-                         content.push("<li>"+i+"</li>");
 
-                     } else {
 
-                         content.push("<li class='xl-active'>"+i+"</li>");
 
-                     }
 
-                 }
 
-                 content.push("<li class='xl-disabled'>...</li>");
 
-                 content.push("<li>" + pageNum + "</li>");
 
-             }else  if(pageNum - nowPage <= Math.floor(buttonNum / 2)){
 
-                 //当前页面大于展示页数总数的一半(向下取整)
 
-                 content.push("<li>"+1+"</li>");
 
-                 content.push("<li class='xl-disabled'>...</li>");
 
-                 for(var i=pageNum-buttonNum+3; i<=pageNum; i++){
 
-                     if (nowPage !== i) {
 
-                         content.push("<li>"+i+"</li>");
 
-                     } else {
 
-                         content.push("<li class='xl-active'>"+i+"</li>");
 
-                     }
 
-                 }
 
-             }else{
 
-                 //前半部分页码
 
-                 if(nowPage - Math.floor(buttonNum / 2) <= 0){
 
-                     for(var i=1;i<= Math.floor(buttonNum / 2);i++){
 
-                         if (nowPage !== i) {
 
-                             content.push("<li>"+i+"</li>");
 
-                         } else {
 
-                             content.push("<li class='xl-active'>"+i+"</li>");
 
-                         }
 
-                     }
 
-                 }else{
 
-                     content.push("<li>"+1+"</li>");
 
-                     content.push("<li class='xl-disabled'>...</li>");
 
-                     for(var i=nowPage-Math.floor(buttonNum / 2)+(buttonNum % 2 == 0 ? 3: 2); i<=nowPage; i++){
 
-                         if (nowPage !== i) {
 
-                             content.push("<li>"+i+"</li>");
 
-                         } else {
 
-                             content.push("<li class='xl-active'>"+i+"</li>");
 
-                         }
 
-                     }
 
-                 }
 
-                 //后半部分页码
 
-                 if(pageNum - nowPage <= 0){
 
-                     for(var i=nowPage+1;i<=pageNum;i++){
 
-                         content.push("<li>" + i + "</li>");
 
-                     }
 
-                 }else{
 
-                     for(var i=nowPage+1; i<=nowPage+Math.floor(buttonNum / 2)-2; i++){
 
-                         content.push("<li>"+i+"</li>");
 
-                     }
 
-                     content.push("<li class='xl-disabled'>...</li>");
 
-                     content.push("<li>" + pageNum + "</li>");
 
-                 }
 
-             }
 
-             content.push("<li class='xl-nextPage'>下一页</li>");
 
-             content.push("</ul>");
 
-             me.element.html(content.join(''));
 
-              // DOM重新生成后每次调用是否禁用button
 
-             setTimeout(function () {
 
-                 me.disabled();
 
-             }, 20);
 
-             
 
-         },
 
-         bindClickEvent: function(){
 
-             var me = this;
 
-             me.element.off('click', 'li');
 
-             me.element.on('click', 'li', function () {
 
-                 var cla = $(this).attr('class');
 
-                 var num = parseInt($(this).html());
 
-                 var nowPage = me.options.nowPage;
 
-                 if( $(this).hasClass('xl-disabled')){
 
-                     return ;
 
-                 }
 
-                 if (cla === 'xl-prevPage') {
 
-                     if (nowPage !== 1) {
 
-                         me.options.nowPage -= 1;
 
-                     }
 
-                 } else if (cla === 'xl-nextPage') {
 
-                     if (nowPage !== me.options.pageNum) {
 
-                         me.options.nowPage += 1;
 
-                     }
 
-                 }else {
 
-                     me.options.nowPage = num;
 
-                 }
 
-                 me.createHtml();
 
-                 if (me.options.callback) {
 
-                     me.options.callback(me.options.nowPage);
 
-                 }
 
-             });
 
-         },
 
-         disabled: function () {
 
-             var me = this;
 
-             var nowPage = me.options.nowPage;
 
-             var pageNum = me.options.pageNum;
 
-             if (nowPage === 1) {
 
-                 me.element.children().children('.xl-prevPage').addClass('xl-disabled');
 
-             } else if (nowPage === pageNum) {
 
-                 me.element.children().children('.xl-nextPage').addClass('xl-disabled');
 
-             }
 
-         }
 
-     }
 
-     $.fn.paging = function (options) {
 
-         return new Paging($(this), options);
 
-     }
 
- })(jQuery, window, document);
 
 
  |