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