(function($) {
var zp = {
init: function(obj, pageinit) {
return (function() {
zp.addhtml(obj, pageinit);
zp.bindEvent(obj, pageinit);
}());
},
addhtml: function(obj, pageinit) {
return (function() {
obj.empty();
if (pageinit.shownum < 5) {
pageinit.shownum = 5;
}
if (pageinit.pageNum < pageinit.shownum) {
pageinit.shownum = pageinit.pageNum;
}
var numshow = pageinit.shownum - 4;
var numbefore = parseInt((pageinit.shownum - 5) / 2);
if ((pageinit.shownum - 5) % 2 > 0) {
var numafter = numbefore + 1;
} else {
var numafter = numbefore;
}
obj.append('共 ' + '' + pageinit.total + '' + ' 条数据 ');
/*上一页*/
if (pageinit.current > 1) {
obj.append('上一页');
} else {
obj.remove('.prevPage');
obj.append('上一页');
}
/*中间页*/
if (pageinit.current > 4 && pageinit.pageNum > pageinit.shownum) {
obj.append('' + 1 + '');
obj.append('' + 2 + '');
obj.append('...');
}
if (pageinit.current > 4 && pageinit.current < pageinit.pageNum - numshow && pageinit.pageNum > pageinit.shownum) {
var start = pageinit.current - numbefore,
end = pageinit.current + numafter;
} else if (pageinit.current > 4 && pageinit.current >= pageinit.pageNum - numshow && pageinit.pageNum > pageinit.shownum) {
var start = pageinit.pageNum - numshow,
end = pageinit.pageNum;
} else {
if (pageinit.pageNum <= pageinit.shownum) {
var start = 1,
end = pageinit.shownum;
} else {
var start = 1,
end = pageinit.shownum - 1;
}
}
for (; start <= end; start++) {
if (start <= pageinit.pageNum && start >= 1) {
if (start == pageinit.current) {
obj.append('' + start + '');
} else if (start == pageinit.current + 1) {
obj.append('' + start + '');
} else {
obj.append('' + start + '');
}
}
}
if (end < pageinit.pageNum) {
obj.append('...');
}
/*下一页*/
if (pageinit.current >= pageinit.pageNum) {
obj.remove('.nextbtn');
obj.append('下一页');
} else {
obj.append('下一页');
}
/*尾部*/
obj.append('' + '共' + '' + pageinit.pageNum + '' + '页' + '');
obj.append('' + '到第' + '' + '页' + '');
obj.append('' + '确定' + '');
}());
},
bindEvent: function(obj, pageinit) {
return (function() {
obj.off("click");
obj.on("click", "a.prebtn", function() {
var cur = parseInt(obj.children("span.current").text());
var current = $.extend(pageinit, { "current": cur - 1 });
zp.addhtml(obj, current);
if (typeof(pageinit.backfun) == "function") {
pageinit.backfun(current);
}
});
obj.on("click", "a.zxfPagenum", function() {
var cur = parseInt($(this).text());
var current = $.extend(pageinit, { "current": cur });
zp.addhtml(obj, current);
if (typeof(pageinit.backfun) == "function") {
pageinit.backfun(current);
}
});
obj.on("click", "a.nextbtn", function() {
var cur = parseInt(obj.children("span.current").text());
var current = $.extend(pageinit, { "current": cur + 1 });
zp.addhtml(obj, current);
if (typeof(pageinit.backfun) == "function") {
pageinit.backfun(current);
}
});
obj.on("click", "span.zxfokbtn", function() {
var cur = parseInt($("input.zxfinput").val());
var current = $.extend(pageinit, { "current": cur });
zp.addhtml(obj, current);
if (typeof(pageinit.backfun) == "function") {
pageinit.backfun(current);
}
});
obj.on("keydown", "input.zxfinput", function() {
if (event.keyCode == "13") {
$(".zxfokbtn").click();
}
});
}());
}
}
$.fn.createPage = function(options) {
var pageinit = $.extend({
pageNum: 10,
current: 1,
shownum: 9,
activepage: "current",
activepaf: "nextpage",
backfun: function() {}
}, options);
zp.init(this, pageinit);
}
}(jQuery));