锘?**
* 鍒嗛〉鎻掍欢 鏇挎崲涔嬪墠鐨刯query.pagination鎻掍欢
*/
$(function ($) {
var templates = {
wrapper: '
',
prevBtn: ' 芦',
nextBtn: '禄',
muchBtn: '...',
indexSelector: '{0}'
};
/**
* 鍒濆鍖栧垎椤电粍浠
*/
var Ctor = function (options) {
this._data = {};
};
Ctor.prototype = {
/**
* 鏋勫缓缁勪欢
* 璇ユ柟娉曚腑this瀵硅薄鎸囧悜缁勪欢鏈韩
*/
init: function (_that) {
//璋冪敤onInit
with ({ _this: this }) {
/*********** 缁勮 begin ***********/
var $wrapper = $(templates.wrapper),
$body = "",
$prevBtn = $(templates.prevBtn),
$muchBtn = $(templates.muchBtn),
$nextBtn = $(templates.nextBtn);
/******椤垫暟鏄剧ず-寰呬紭鍖朾egin******/
var counts = 0;
var endcounts = 1;
var nmuchBtn = 1;
var pageIndex = _that.pageIndex;
var pageSize = Math.ceil(_that.sum / _that.size);
if (pageSize <= 10) {
for (var i = 1; i <= pageSize; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
}
else {
//鏁伴噺搴炲ぇ-鍙兘鍑虹幇涓夋
var pageSize = Math.ceil(_that.sum / _that.size);
//涓夋
if (pageIndex >= 7 && (pageSize - pageIndex) >= 6) {
for (var i = 1; i <= 2; i++) {
$body += templates.indexSelector.format(i);
}
$body += templates.muchBtn;
for (var i = (pageIndex - 3) ; i <= (pageIndex + 3) ; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
$body += templates.muchBtn;
for (var i = pageSize - 1; i <= pageSize; i++) {
$body += templates.indexSelector.format(i);
}
}
else {
if (pageIndex <= (pageSize / 2 + 1)) {
for (var i = 1; i <= 9; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
$body += templates.muchBtn;
for (var i = pageSize - 1; i <= pageSize; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
}
else {
for (var i = 1; i <= 2; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
$body += templates.muchBtn;
for (var i = pageSize - 8; i <= pageSize; i++) {
if (i == pageIndex) {
$body += templates.indexSelector.format(i, "class='active'");
}
else {
$body += templates.indexSelector.format(i);
}
}
}
}
}
/******椤垫暟鏄剧ず-寰呬紭鍖杄nd******/
$wrapper.append("鍏 " + _that.sum + " 鏉 ")
.append($prevBtn)
.append($body)
.append($nextBtn);
/*********** 缁勮 end ***********/
return $wrapper;
}
}
};
$.pagination = function (parameters) {
var _pagination;
_pagination = new Ctor();
var pagess = _pagination.init(parameters);
parameters.model.html(pagess);
$(".pagination a").off('click').on('click', function () {
var $this = $(this),
$ul = $this.parents('ul.pagination'),
$nav = $ul.parent(),
href = location.href.toLowerCase(),
pageIndex = 1,
currentIndex = Math.ceil($ul.find('li.active').text()),
ajaxLoadUrl = $nav.data('ajaxloadurl').toLowerCase(),
targetId = $nav.data('targetid'),
sum = $nav.data('sum'),
size = $nav.data('size');
if ($this.is($('a.pageprevious'))) {
if (currentIndex > 1) {
pageIndex = currentIndex - 1;
}
}
else if ($this.is($('a.pagenext'))) {
if (currentIndex < Math.ceil(sum / size)) {
pageIndex = currentIndex + 1;
}
else {
pageIndex = currentIndex;
}
}
if (targetId && ajaxLoadUrl) {
if (window.tn_AjaxLoadUrl && window.tn_AjaxLoadUrl[ajaxLoadUrl]) {
href = window.tn_AjaxLoadUrl[ajaxLoadUrl];
}
else {
href = ajaxLoadUrl;
}
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
href = href.replace(/&t=[0-9]+/, "&t=" + (new Date()).valueOf());
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex + "&t=" + (new Date()).valueOf();
}
$('#' + targetId).load(href, function () {
});
}
else {
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex;
}
window.location = href;
}
return false;
});
}
//return this;
});
/************缈婚〉**************/
$(function ($) {
var templates = {
wrapper: '',
prevBtn: 'Previous',
nextBtn: 'Next',
hiddenlab: ''
};
var templates2 = {
wrapper: '',
prevBtn: '鈫忺/span>Previous',
nextBtn: '鈫扅/span>Next',
hiddenlab: ''
};
/**
* 鍒濆鍖栧垎椤电粍浠
*/
var Ctor = function (options) {
this._data = {};
};
Ctor.prototype = {
/**
* 鏋勫缓缁勪欢
* 璇ユ柟娉曚腑this瀵硅薄鎸囧悜缁勪欢鏈韩
*/
init: function (_that) {
//璋冪敤onInit
with ({ _this: this }) {
var $wrapper = $(templates.wrapper)
, $prevBtn = $(templates.prevBtn)
, $nextBtn = $(templates.nextBtn)
, $hiddenlab = $(templates.hiddenlab);
if (Math.ceil(_that.sum / _that.size) == _that.pageIndex) {
$wrapper
.append($prevBtn)
.append($hiddenlab)
;
}
else {
$wrapper
.append($prevBtn)
.append($nextBtn)
.append($hiddenlab)
;
}
//todo @wanglei 璧嬪綋鍓嶉〉鏁
$hiddenlab.val(_that.pageIndex)
/*********** 缁勮 end ***********/
return $wrapper;
}
}
};
$.pagination2 = function (parameters) {
var _pagination2;
_pagination2 = new Ctor();
var pagess = _pagination2.init(parameters);
parameters.model.html(pagess);
var indexsss = parameters.pageIndex;
$(".pagination a").off('click').on('click', function () {
var $this = $(this),
$ul = $this.parents('ul.pagination'),
$nav = $ul.parent(),
href = location.href.toLowerCase(),
pageIndex = 1,
currentIndex = Math.ceil($(".hiddenlabindex").val()),
ajaxLoadUrl = $nav.data('ajaxloadurl').toLowerCase(),
targetId = $nav.data('targetid'),
sum = $nav.data('sum'),
size = $nav.data('size');
if ($this.is($('a.pageprevious'))) {
if (currentIndex > 1) {
pageIndex = currentIndex - 1;
}
}
else if ($this.is($('a.pagenext'))) {
if (currentIndex < Math.ceil(sum / size)) {
pageIndex = currentIndex + 1;
}
else {
pageIndex = currentIndex;
}
}
if (targetId && ajaxLoadUrl) {
if (window.tn_AjaxLoadUrl && window.tn_AjaxLoadUrl[ajaxLoadUrl]) {
href = window.tn_AjaxLoadUrl[ajaxLoadUrl];
}
else {
href = ajaxLoadUrl;
}
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
href = href.replace(/&t=[0-9]+/, "&t=" + (new Date()).valueOf());
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex + "&t=" + (new Date()).valueOf();
}
$('#' + targetId).load(href, function () {
});
}
else {
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex;
}
window.location = href;
}
return false;
});
}
});
/************鐐瑰嚮鍔犺浇鏇村**************/
$(function ($) {
var templates = {
wrapper: '',
nextBtn: '鐐瑰嚮鍔犺浇鏇村',
hiddenlab: ''
};
/**
* 鍒濆鍖栧垎椤电粍浠
*/
var Ctor = function (options) {
this._data = {};
};
Ctor.prototype = {
/**
* 鏋勫缓缁勪欢
* 璇ユ柟娉曚腑this瀵硅薄鎸囧悜缁勪欢鏈韩
*/
init: function (_that) {
//璋冪敤onInit
with ({ _this: this }) {
var $wrapper = $(templates.wrapper)
, $nextBtn = $(templates.nextBtn)
, $hiddenlab = $(templates.hiddenlab);
if (Math.ceil(_that.sum / _that.size) == _that.pageIndex) {
$wrapper
.append($hiddenlab)
;
}
else {
$wrapper
.append($nextBtn)
.append($hiddenlab)
;
}
//todo @wanglei 璧嬪綋鍓嶉〉鏁
$hiddenlab.val(_that.pageIndex)
/*********** 缁勮 end ***********/
return $wrapper;
}
}
};
$.pagination3 = function (parameters) {
var _pagination3;
_pagination3 = new Ctor();
var pagess = _pagination3.init(parameters);
parameters.model.html(pagess);
var indexsss = parameters.pageIndex;
$(".pagination a").off('click').on('click', function () {
var $this = $(this),
$ul = $this.parents('ul.pagination'),
$nav = $ul.parent(),
href = location.href.toLowerCase(),
pageIndex = 1,
currentIndex = Math.ceil($(".hiddenlabindex").val()),
ajaxLoadUrl = $nav.data('ajaxloadurl').toLowerCase(),
targetId = $nav.data('targetid'),
sum = $nav.data('sum'),
size = $nav.data('size');
if ($this.is($('a.pageprevious'))) {
if (currentIndex > 1) {
pageIndex = currentIndex - 1;
}
}
else if ($this.is($('a.pagenext'))) {
if (currentIndex < Math.ceil(sum / size)) {
pageIndex = currentIndex + 1;
$(".hiddenlabindex").val(pageIndex)
}
else {
pageIndex = currentIndex;
$(".hiddenlabindex").val(pageIndex)
}
}
if (targetId && ajaxLoadUrl) {
if (window.tn_AjaxLoadUrl && window.tn_AjaxLoadUrl[ajaxLoadUrl]) {
href = window.tn_AjaxLoadUrl[ajaxLoadUrl];
}
else {
href = ajaxLoadUrl;
}
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
href = href.replace(/&t=[0-9]+/, "&t=" + (new Date()).valueOf());
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex + "&t=" + (new Date()).valueOf();
}
var indexLoad = layer.load(1, {
shade: [0.1, '#fff'] //0.1閫忔槑搴︾殑鐧借壊鑳屾櫙
});
$.get(href, function (data) {
layer.close(indexLoad);
$('ul.pagination').remove();
$('#' + targetId).append(data);
})
}
else {
if (!isNaN($(this).text())) {
pageIndex = $(this).text();
}
if (href.indexOf('pageindex=') > 0) {
href = href.replace(/pageindex=[0-9]+/, "pageindex=" + pageIndex);
} else {
href = href + (href.indexOf('?') > 0 ? "&" : "?") + "pageindex=" + pageIndex;
}
window.location = href;
}
return false;
});
}
});
$(function ($) {
/**鑾峰彇鍙傛暟锛
id:-----id
绫诲瀷锛堝垎椤电瓑锛堹----mode
椤垫暟:-----sum
鎬绘暟锛堟€绘潯鐩暟锛堹----pages
鏄惁寮傛:----najax
鍦板潃:----action
褰撳墠椤垫暟:----size
椋庢牸:----style
**/
$.initialization = function (page, size) {
var pages;
for (var i = 0; i < page.length; i++) {
pages = page[i];
if ($(pages).data("size") > 0) {
size = $(pages).data("size");
}
var parameters = {
targetId: $(pages).data("targetid"),
mode: $(pages).data("mode"),
pages: $(pages),
style: $(pages).data("style"),
sum: $(pages).data("sum"),
ajaxLoadUrl: $(pages).data("ajaxloadurl"),
size: parseFloat(size),
pageIndex: parseFloat($(pages).data("pageindex")),
model: page
};
//todo @wanglei 鍒ゆ柇鍒嗛〉妯″紡
if (parameters.mode == "NextLoadMore") {
$.pagination3(parameters)
}
else {
$.pagination(parameters)
}
}
}
});
$(document).ready(function () {
$("[data-plugin='page']").livequery(function () {
var $this = $(this),
loadUrl = $this.data('ajaxloadurl').toLowerCase();
if (!window.tn_AjaxLoadUrl) {
window.tn_AjaxLoadUrl = {};
}
if (!window.tn_AjaxLoadUrl[loadUrl]) {
window.tn_AjaxLoadUrl[loadUrl] = '';
}
$.initialization($this, 1);
$($.fn.checkActive);
});
$(document).ajaxComplete(function (event, xhr, options) {
var url = options.url.toLowerCase();
if (url && window.tn_AjaxLoadUrl) {
for (var key in window.tn_AjaxLoadUrl) {
if (url.indexOf(key) > -1) {
window.tn_AjaxLoadUrl[key] = url.toLowerCase();
break;
}
}
}
});
});