;(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(""); 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);