tablesorter 使用ajax加载数据,怎么配合tablesorter.pager进行数据分页??
由于数据量多(万级)表格使用tablesorter时行排序显示,考虑到异步加载分布数据问题,选择tablesorter对应tablesorter.pager.js进行自动分页。
请问jquery.tablesorter.pager应该怎么配置??有点看不懂。已自己写好table ajax数据请求填充。
/*!
* tablesorter (FORK) pager plugin
* updated 6/28/2016 (v2.26.5)
*/
! function(a) {
"use strict";
var b = a.tablesorter;
a.extend({
tablesorterPager: new function() {
this.defaults = {
container: null,
ajaxUrl: null,
customAjaxUrl: function(a, b) {
return b
},
ajaxError: null,
ajaxObject: {
dataType: "json"
},
processAjaxOnInit: !0,
ajaxProcessing: function(a) {
return [0, [], null]
},
output: "{startRow} to {endRow} of {totalRows} rows",
updateArrows: !0,
page: 0,
pageReset: 0,
size: 10,
maxOptionSize: 20,
savePages: !0,
storageKey: "tablesorter-pager",
fixedHeight: !1,
countChildRows: !1,
removeRows: !1,
cssFirst: ".first",
cssPrev: ".prev",
cssNext: ".next",
cssLast: ".last",
cssGoto: ".gotoPage",
cssPageDisplay: ".pagedisplay",
cssPageSize: ".pagesize",
cssErrorRow: "tablesorter-errorRow",
cssDisabled: "disabled",
totalRows: 0,
totalPages: 0,
filteredRows: 0,
filteredPages: 0,
ajaxCounter: 0,
currentFilters: [],
startRow: 0,
endRow: 0,
$size: null,
last: {}
};
var c = "filterInit filterStart filterEnd sortEnd disablePager enablePager destroyPager updateComplete pageSize pageSet pageAndSize pagerUpdate refreshComplete ",
d = this,
e = function(a, b, c) {
var d = "addClass",
e = "removeClass",
f = b.cssDisabled,
g = !!c,
h = g || 0 === b.page,
i = t(a, b),
j = g || b.page === i - 1 || 0 === i;
b.updateArrows && (b.$container.find(b.cssFirst + "," + b.cssPrev)[h ? d : e](f).attr("aria-disabled", h), b.$container.find(b.cssNext + "," + b.cssLast)[j ? d : e](f).attr("aria-disabled", j))
},
f = function(a, c) {
var d, e, f, g = a.config,
h = g.$table.hasClass("hasFilters");
if (h && !c.ajaxUrl)
if (b.isEmptyObject(g.cache)) c.filteredRows = c.totalRows = g.$tbodies.eq(0).children("tr").not(c.countChildRows ? "" : "." + g.cssChildRow).length;
else
for (c.filteredRows = 0, d = g.cache[0].normalized, f = d.length, e = 0; f > e; e++) c.filteredRows += c.regexRows.test(d[e][g.columns].$row[0].className) ? 0 : 1;
else h || (c.filteredRows = c.totalRows)
},
g = function(c, d, g) {
if (!d.initializing) {
var j, k, l, m, n, o, p = c.config,
q = p.namespace + "pager",
r = u(d, d.size, "get");
if ("all" === r && (r = d.totalRows), d.countChildRows && (k[k.length] = p.cssChildRow), d.totalPages = Math.ceil(d.totalRows / r), p.totalRows = d.totalRows, v(c, d), f(c, d), p.filteredRows = d.filteredRows, d.filteredPages = Math.ceil(d.filteredRows / r) || 0, t(c, d) >= 0) {
if (k = r * d.page > d.filteredRows && g, d.page = k ? d.pageReset || 0 : d.page, d.startRow = k ? r * d.page + 1 : 0 === d.filteredRows ? 0 : r * d.page + 1, d.endRow = Math.min(d.filteredRows, d.totalRows, r * (d.page + 1)), l = d.$container.find(d.cssPageDisplay), j = (d.ajaxData && d.ajaxData.output ? d.ajaxData.output || d.output : d.output).replace(/\{page([\-+]\d+)?\}/gi, function(a, b) {
return d.totalPages ? d.page + (b ? parseInt(b, 10) : 1) : 0
}).replace(/\{\w+(\s*:\s*\w+)?\}/gi, function(a) {
var b, c, e = a.replace(/[{}\s]/g, ""),
f = e.split(":"),
g = d.ajaxData,
h = /(rows?|pages?)$/i.test(e) ? 0 : "";
return /(startRow|page)/.test(f[0]) && "input" === f[1] ? (b = ("" + ("page" === f[0] ? d.totalPages : d.totalRows)).length, c = "page" === f[0] ? d.page + 1 : d.startRow, '<input type="text" class="ts-' + f[0] + '" style="max-width:' + b + 'em" value="' + c + '"/>') : f.length > 1 && g && g[f[0]] ? g[f[0]][f[1]] : d[e] || (g ? g[e] : h) || h
}), d.$goto.length) {
for (k = "", o = h(c, d), n = o.length, m = 0; n > m; m++) k += '<option value="' + o[m] + '">' + o[m] + "</option>";
d.$goto.html(k).val(d.page + 1)
}
l.length && (l["INPUT" === l[0].nodeName ? "val" : "html"](j), l.find(".ts-startRow, .ts-page").unbind("change" + q).bind("change" + q, function() {
var b = a(this).val(),
c = a(this).hasClass("ts-startRow") ? Math.floor(b / r) + 1 : b;
p.$table.triggerHandler("pageSet" + q, [c])
}))
}
e(c, d), i(c, d), d.initialized && g !== !1 && (p.debug && console.log("Pager: Triggering pagerComplete"), p.$table.triggerHandler("pagerComplete", d), d.savePages && b.storage && b.storage(c, d.storageKey, {
page: d.page,
size: r === d.totalRows ? "all" : r
}))
}
},
h = function(b, c) {
var d, e, f, g, h, i, j = t(b, c) || 1,
k = 5 * Math.ceil(j / c.maxOptionSize / 5),
l = j > c.maxOptionSize,
m = c.page + 1,
n = k,
o = j - k,
p = [1],
q = l ? k : 1;
for (d = q; j >= d;) p[p.length] = d, d += l ? k : 1;
if (p[p.length] = j, l) {
for (f = [], e = Math.max(Math.floor(c.maxOptionSize / k) - 1, 5), n = m - e, 1 > n && (n = 1), o = m + e, o > j && (o = j), d = n; o >= d; d++) f[f.length] = d;
p = a.grep(p, function(b, c) {
return a.inArray(b, p) === c
}), h = p.length, i = f.length, h - i > k / 2 && h + i > c.maxOptionSize && (g = Math.floor(h / 2) - Math.floor(i / 2), Array.prototype.splice.apply(p, [g, i])), p = p.concat(f)
}
return p = a.grep(p, function(b, c) {
return a.inArray(b, p) === c
}).sort(function(a, b) {
return a - b
})
},
i = function(b, c) {
var d, e, f = b.config,
g = f.$tbodies.eq(0);
g.find("tr.pagerSavedHeightSpacer").remove(), c.fixedHeight && !c.isDisabled && (e = a.data(b, "pagerSavedHeight"), e && (d = e - g.height(), d > 5 && a.data(b, "pagerLastSize") === c.size && g.children("tr:visible").length < ("all" === c.size ? c.totalRows : c.size) && g.append('<tr class="pagerSavedHeightSpacer ' + f.selectorRemove.slice(1) + '" style="height:' + d + 'px;"></tr>')))
},
j = function(b, c) {
var d, e = b.config,
f = e.$tbodies.eq(0);
f.find("tr.pagerSavedHeightSpacer").remove(), f.children("tr:visible").length || f.append('<tr class="pagerSavedHeightSpacer ' + e.selectorRemove.slice(1) + '"><td> </td></tr>'), d = f.children("tr").eq(0).height() * ("all" === c.size ? c.totalRows : c.size), a.data(b, "pagerSavedHeight", d), i(b, c), a.data(b, "pagerLastSize", c.size)
},
k = function(a, c) {
if (!c.ajaxUrl) {
var d, e = 0,
f = a.config,
g = f.$tbodies.eq(0).children("tr"),
h = g.length,
i = "all" === c.size ? c.totalRows : c.size,
j = c.page * i,
k = j + i,
l = 0,
m = 0;
for (c.cacheIndex = [], d = 0; h > d; d++) c.regexFiltered.test(g[d].className) || (m === j && g[d].className.match(f.cssChildRow) ? g[d].style.display = "none" : (g[d].style.display = m >= j && k > m ? "" : "none", l !== m && m >= j && k > m && (c.cacheIndex[c.cacheIndex.length] = d, l = m), m += g[d].className.match(f.cssChildRow + "|" + f.selectorRemove.slice(1)) && !c.countChildRows ? 0 : 1, m === k && "none" !== g[d].style.display && g[d].className.match(b.css.cssHasChild) && (e = d)));
if (e > 0 && g[e].className.match(b.css.cssHasChild))
for (; ++e < h && g[e].className.match(f.cssChildRow);) g[e].style.display = ""
}
},
l = function(b, c) {
c.size = u(c, c.$size.val(), "get"), c.$size.val(c.size), a.data(b, "pagerLastSize", c.size), e(b, c), c.removeRows || (k(b, c), a(b).bind("sortEnd filterEnd ".split(" ").join(b.config.namespace + "pager "), function() {
k(b, c)
}))
},
m = function(c, d, e, f, h, i) {
if ("function" == typeof e.ajaxProcessing) {
d.config.$tbodies.eq(0).empty();
var j, k, l, m, n, o, p, q, r, s, t, v, w, x, y, z = d.config,
A = z.$table,
C = "",
D = e.ajaxProcessing(c, d, f) || [0, []],
E = A.find("thead th").length;
if (b.showError(d), i) z.debug && console.error("Pager: >> Ajax Error", f, h, i), b.showError(d, f, h, i), z.$tbodies.eq(0).children("tr").detach(), e.totalRows = 0;
else {
if (a.isArray(D) ? (l = isNaN(D[0]) && !isNaN(D[1]), w = D[l ? 1 : 0], e.totalRows = isNaN(w) ? e.totalRows || 0 : w, z.totalRows = z.filteredRows = e.filteredRows = e.totalRows, t = 0 === e.totalRows ? [] : D[l ? 0 : 1] || [], s = D[2]) : (e.ajaxData = D, z.totalRows = e.totalRows = D.total, z.filteredRows = e.filteredRows = "undefined" != typeof D.filteredRows ? D.filteredRows : D.total, s = D.headers, t = D.rows || []), v = t && t.length, t instanceof jQuery) e.processAjaxOnInit && (z.$tbodies.eq(0).empty(), z.$tbodies.eq(0).append(t));
else if (v) {
for (j = 0; v > j; j++) {
for (C += "<tr>", k = 0; k < t[j].length; k++) C += /^\s*<td/.test(t[j][k]) ? a.trim(t[j][k]) : "<td>" + t[j][k] + "</td>";
C += "</tr>"
}
e.processAjaxOnInit && z.$tbodies.eq(0).html(C)
}
if (e.processAjaxOnInit = !0, s && s.length === E)
for (m = A.hasClass("hasStickyHeaders"), o = m ? z.widgetOptions.$sticky.children("thead:first").children("tr").children() : "", n = A.find("tfoot tr:first").children(), p = z.$headers.filter("th "), x = p.length, k = 0; x > k; k++) q = p.eq(k), q.find("." + b.css.icon).length ? (r = q.find("." + b.css.icon).clone(!0), q.find(".tablesorter-header-inner").html(s[k]).append(r), m && o.length && (r = o.eq(k).find("." + b.css.icon).clone(!0), o.eq(k).find(".tablesorter-header-inner").html(s[k]).append(r))) : (q.find(".tablesorter-header-inner").html(s[k]), m && o.length && o.eq(k).find(".tablesorter-header-inner").html(s[k])), n.eq(k).html(s[k])
}
z.showProcessing && b.isProcessing(d), y = u(e, e.size, "get"), e.totalPages = "all" === y ? 1 : Math.ceil(e.totalRows / y), e.last.totalRows = e.totalRows, e.last.currentFilters = e.currentFilters, e.last.sortList = (z.sortList || []).join(","), g(d, e, !1), b.updateCache(z, function() {
e.initialized && setTimeout(function() {
z.debug && console.log("Pager: Triggering pagerChange"), A.triggerHandler("pagerChange", e), b.applyWidget(d), g(d, e, !0)
}, 0)
})
}
e.initialized || B(d, e)
},
n = function(c, d) {
var e, f = o(c, d),
g = a(document),
h = c.config,
i = h.namespace + "pager";
"" !== f && (h.showProcessing && b.isProcessing(c, !0), g.bind("ajaxError" + i, function(a, b, e, f) {
m(null, c, d, b, e, f), g.unbind("ajaxError" + i)
}), e = ++d.ajaxCounter, d.last.ajaxUrl = f, d.ajaxObject.url = f, d.ajaxObject.success = function(a, b, f) {
e < d.ajaxCounter || (m(a, c, d, f), g.unbind("ajaxError" + i), "function" == typeof d.oldAjaxSuccess && d.oldAjaxSuccess(a))
}, h.debug && console.log("Pager: Ajax initialized", d.ajaxObject), a.ajax(d.ajaxObject))
},
o = function(b, c) {
var d, e, f = b.config,
g = c.ajaxUrl ? c.ajaxUrl.replace(/\{page([\-+]\d+)?\}/, function(a, b) {
return c.page + (b ? parseInt(b, 10) : 0)
}).replace(/\{size\}/g, c.size) : "",
h = f.sortList,
i = c.currentFilters || a(b).data("lastSearch") || [],
j = g.match(/\{\s*sort(?:List)?\s*:\s*(\w*)\s*\}/),
k = g.match(/\{\s*filter(?:List)?\s*:\s*(\w*)\s*\}/),
l = [];
if (j) {
for (j = j[1], e = h.length, d = 0; e > d; d++) l[l.length] = j + "[" + h[d][0] + "]=" + h[d][1];
g = g.replace(/\{\s*sort(?:List)?\s*:\s*(\w*)\s*\}/g, l.length ? l.join("&") : j), l = []
}
if (k) {
for (k = k[1], e = i.length, d = 0; e > d; d++) i[d] && (l[l.length] = k + "[" + d + "]=" + encodeURIComponent(i[d]));
g = g.replace(/\{\s*filter(?:List)?\s*:\s*(\w*)\s*\}/g, l.length ? l.join("&") : k), c.currentFilters = i
}
return "function" == typeof c.customAjaxUrl && (g = c.customAjaxUrl(b, g)), f.debug && console.log("Pager: Ajax url = " + g), g
},
p = function(c, d, e) {
var f, h, i, j, l = a(c),
m = c.config,
n = m.$table.hasClass("hasFilters"),
o = d && d.length || 0,
p = "all" === e.size ? e.totalRows : e.size,
q = e.page * p;
if (1 > o) return void(m.debug && console.warn("Pager: >> No rows for pager to render"));
if (e.page >= e.totalPages && y(c, e), e.cacheIndex = [], e.isDisabled = !1, e.initialized && (m.debug && console.log("Pager: Triggering pagerChange"), l.triggerHandler("pagerChange", e)), e.removeRows) {
for (b.clearTableBody(c), f = b.processTbody(c, m.$tbodies.eq(0), !0), h = n ? 0 : q, i = n ? 0 : q, j = 0; p > j && h < d.length;) n && e.regexFiltered.test(d[h][0].className) || (i++, i > q && p >= j && (j++, e.cacheIndex[e.cacheIndex.length] = h, f.append(d[h]))), h++;
b.processTbody(c, f, !1)
} else k(c, e);
g(c, e), c.isUpdating && (m.debug && console.log("Pager: Triggering updateComplete"), l.triggerHandler("updateComplete", [c, !0]))
},
q = function(c, d) {
var f, g, h;
for (d.ajax ? e(c, d, !0) : (a.data(c, "pagerLastPage", d.page), a.data(c, "pagerLastSize", d.size), d.page = 0, d.size = "all", d.totalPages = 1, a(c).addClass("pagerDisabled").removeAttr("aria-describedby").find("tr.pagerSavedHeightSpacer").remove(), p(c, c.config.rowsCopy, d), d.isDisabled = !0, b.applyWidget(c), c.config.debug && console.log("Pager: Disabled")), g = d.$size.add(d.$goto).add(d.$container.find(".ts-startRow, .ts-page")), h = g.length, f = 0; h > f; f++) g.eq(f).attr("aria-disabled", "true").addClass(d.cssDisabled)[0].disabled = !0
},
r = function(a) {
var c = a.config,
d = c.pager;
b.updateCache(c, function() {
var b, e = [],
f = a.config.cache[0].normalized;
for (d.totalRows = f.length, b = 0; b < d.totalRows; b++) e[e.length] = f[b][c.columns].$row;
c.rowsCopy = e, s(a, d, !0)
})
},
s = function(c, d, e) {
if (!d.isDisabled) {
var g, h = c.config,
i = a(c),
j = d.last;
return e !== !1 && d.initialized && b.isEmptyObject(h.cache) ? r(c) : void(d.ajax && b.hasWidget(c, "filter") && !h.widgetOptions.filter_initialized || (v(c, d), f(c, d), j.currentFilters = "" === (j.currentFilters || []).join("") ? [] : j.currentFilters, d.currentFilters = "" === (d.currentFilters || []).join("") ? [] : d.currentFilters, j.page === d.page && j.size === d.size && j.totalRows === d.totalRows && (j.currentFilters || []).join(",") === (d.currentFilters || []).join(",") && (j.ajaxUrl || "") === (d.ajaxObject.url || "") && (j.optAjaxUrl || "") === (d.ajaxUrl || "") && j.sortList === (h.sortList || []).join(",") || (h.debug && console.log("Pager: Changing to page " + d.page), d.last = {
page: d.page,
size: d.size,
sortList: (h.sortList || []).join(","),
totalRows: d.totalRows,
currentFilters: d.currentFilters || [],
ajaxUrl: d.ajaxObject.url || "",
optAjaxUrl: d.ajaxUrl || ""
}, d.ajax ? d.processAjaxOnInit || b.isEmptyObject(d.initialRows) ? n(c, d) : (d.processAjaxOnInit = !0, g = d.initialRows, d.totalRows = "undefined" != typeof g.total ? g.total : h.debug ? console.error("Pager: no initial total page set!") || 0 : 0, d.filteredRows = "undefined" != typeof g.filtered ? g.filtered : h.debug ? console.error("Pager: no initial filtered page set!") || 0 : 0, B(c, d)) : d.ajax || p(c, h.rowsCopy, d), a.data(c, "pagerLastPage", d.page), d.initialized && e !== !1 && (h.debug && console.log("Pager: Triggering pageMoved"), i.triggerHandler("pageMoved", d), b.applyWidget(c), c.isUpdating && (h.debug && console.log("Pager: Triggering updateComplete"), i.triggerHandler("updateComplete", [c, !0]))))))
}
},
t = function(a, c) {
return b.hasWidget(a, "filter") ? Math.min(c.totalPages, c.filteredPages) : c.totalPages
},
u = function(a, b, c) {
var d = parseInt(b, 10) || a.size || a.settings.size || 10;
return /all/i.test(b) || d === a.totalRows ? "all" : "get" === c ? d : a.size
},
v = function(a, b) {
var c = t(a, b) - 1;
return b.page = parseInt(b.page, 10), (b.page < 0 || isNaN(b.page)) && (b.page = 0), b.page > c && c >= 0 && (b.page = c), b.page
},
w = function(b, c, d) {
d.size = u(d, c, "get"), d.$size.val(u(d, d.size, "set")), a.data(b, "pagerLastPage", v(b, d)), a.data(b, "pagerLastSize", d.size), d.totalPages = "all" === d.size ? 1 : Math.ceil(d.totalRows / d.size), d.filteredPages = "all" === d.size ? 1 : Math.ceil(d.filteredRows / d.size), s(b, d)
},
x = function(a, b) {
b.page = 0, s(a, b)
},
y = function(a, b) {
b.page = t(a, b) - 1, s(a, b)
},
z = function(a, b) {
b.page++;
var c = t(a, b) - 1;
b.page >= c && (b.page = c), s(a, b)
},
A = function(a, b) {
b.page--, b.page <= 0 && (b.page = 0), s(a, b)
},
B = function(c, d) {
d.initialized = !0, d.initializing = !1, c.config.debug && console.log("Pager: Triggering pagerInitialized"), a(c).triggerHandler("pagerInitialized", d), b.applyWidget(c), g(c, d)
},
C = function(a, c) {
var d = a.config,
e = d.namespace + "pager",
f = [c.cssFirst, c.cssPrev, c.cssNext, c.cssLast, c.cssGoto, c.cssPageSize].join(",");
q(a, c), c.$container.hide().find(f).unbind(e), d.appender = null, d.$table.unbind(e), b.storage && b.storage(a, c.storageKey, ""), delete d.pager, delete d.rowsCopy
},
D = function(c, d, e) {
var f, g, h = c.config;
d.$size.add(d.$goto).add(d.$container.find(".ts-startRow, .ts-page")).removeClass(d.cssDisabled).removeAttr("disabled").attr("aria-disabled", "false"), d.isDisabled = !1, d.page = a.data(c, "pagerLastPage") || d.page || 0, g = d.$size.find("option[selected]").val(), d.size = a.data(c, "pagerLastSize") || u(d, g, "get"), d.$size.val(d.size), d.totalPages = "all" === d.size ? 1 : Math.ceil(t(c, d) / d.size), c.id && (f = c.id + "_pager_info", d.$container.find(d.cssPageDisplay).attr("id", f), h.$table.attr("aria-describedby", f)), j(c, d), e && (b.update(h), w(c, d.size, d), l(c, d), h.debug && console.log("Pager: Enabled"))
};
d.appender = function(b, c) {
var d = b.config,
e = d.pager;
e.ajax || (d.rowsCopy = c, e.totalRows = e.countChildRows ? d.$tbodies.eq(0).children("tr").length : c.length, e.size = a.data(b, "pagerLastSize") || e.size || e.settings.size || 10, e.totalPages = "all" === e.size ? 1 : Math.ceil(e.totalRows / e.size), p(b, c, e), g(b, e, !1))
}, d.construct = function(e) {
return this.each(function() {
if (this.config && this.hasInitialized) {
var f, h, i, m = this,
n = m.config,
o = n.widgetOptions,
p = n.pager = a.extend(!0, {}, a.tablesorterPager.defaults, e),
t = n.$table,
v = n.namespace + "pager",
B = p.$container = a(p.container).addClass("tablesorter-pager").show();
p.settings = a.extend(!0, {}, a.tablesorterPager.defaults, e), n.debug && console.log("Pager: Initializing"), p.oldAjaxSuccess = p.oldAjaxSuccess || p.ajaxObject.success, n.appender = d.appender, p.initializing = !0, p.savePages && b.storage && (f = b.storage(m, p.storageKey) || {}, p.page = isNaN(f.page) ? p.page : f.page, p.size = "all" === f.size ? f.size : (isNaN(f.size) ? p.size : f.size) || p.setSize || 10, a.data(m, "pagerLastSize", p.size), B.find(p.cssPageSize).val(p.size)), p.regexRows = new RegExp("(" + (o.filter_filteredRow || "filtered") + "|" + n.selectorRemove.slice(1) + "|" + n.cssChildRow + ")"), p.regexFiltered = new RegExp(o.filter_filteredRow || "filtered"), t.unbind(c.split(" ").join(v + " ").replace(/\s+/g, " ")).bind("filterInit filterStart ".split(" ").join(v + " "), function(b, c) {
p.currentFilters = a.isArray(c) ? c : n.$table.data("lastSearch"), "filterStart" === b.type && p.pageReset !== !1 && (n.lastCombinedFilter || "") !== (p.currentFilters || []).join("") && (p.page = p.pageReset)
}).bind("filterEnd sortEnd ".split(" ").join(v + " "), function() {
p.currentFilters = n.$table.data("lastSearch"), (p.initialized || p.initializing) && (n.delayInit && n.rowsCopy && 0 === n.rowsCopy.length && r(m), g(m, p, !1), s(m, p, !1), b.applyWidget(m))
}).bind("disablePager" + v, function(a) {
a.stopPropagation(), q(m, p)
}).bind("enablePager" + v, function(a) {
a.stopPropagation(), D(m, p, !0)
}).bind("destroyPager" + v, function(a) {
a.stopPropagation(), C(m, p)
}).bind("updateComplete" + v, function(a, b, c) {
if (a.stopPropagation(), b && !c && !p.ajax) {
var d = n.$tbodies.eq(0).children("tr").not(n.selectorRemove);
p.totalRows = d.length - (p.countChildRows ? 0 : d.filter("." + n.cssChildRow).length), p.totalPages = "all" === p.size ? 1 : Math.ceil(p.totalRows / p.size), d.length && n.rowsCopy && 0 === n.rowsCopy.length && r(b), p.page >= p.totalPages && y(b, p), k(b, p), j(b, p), g(b, p, !0)
}
}).bind("pageSize refreshComplete ".split(" ").join(v + " "), function(a, b) {
a.stopPropagation(), w(m, u(p, b, "get"), p), k(m, p), g(m, p, !1)
}).bind("pageSet pagerUpdate ".split(" ").join(v + " "), function(a, b) {
a.stopPropagation(), "pagerUpdate" === a.type && (b = "undefined" == typeof b ? p.page + 1 : b, p.last.page = !0), p.page = (parseInt(b, 10) || 1) - 1, s(m, p, !0), g(m, p, !1)
}).bind("pageAndSize" + v, function(a, b, c) {
a.stopPropagation(), p.page = (parseInt(b, 10) || 1) - 1, w(m, u(p, c, "get"), p), s(m, p, !0), k(m, p), g(m, p, !1)
}), h = [p.cssFirst, p.cssPrev, p.cssNext, p.cssLast], i = [x, A, z, y], n.debug && !B.length && console.warn("Pager: >> Container not found"), B.find(h.join(",")).attr("tabindex", 0).unbind("click" + v).bind("click" + v, function(b) {
b.stopPropagation();
var c, d = a(this),
e = h.length;
if (!d.hasClass(p.cssDisabled))
for (c = 0; e > c; c++)
if (d.is(h[c])) {
i[c](m, p);
break
}
}), p.$goto = B.find(p.cssGoto), p.$goto.length ? p.$goto.unbind("change" + v).bind("change" + v, function() {
p.page = a(this).val() - 1, s(m, p, !0), g(m, p, !1)
}) : n.debug && console.warn("Pager: >> Goto selector not found"), p.$size = B.find(p.cssPageSize), p.$size.length ? (p.$size.find("option").removeAttr("selected"), p.$size.unbind("change" + v).bind("change" + v, function() {
if (!a(this).hasClass(p.cssDisabled)) {
var b = a(this).val();
p.$size.val(b), w(m, b, p), j(m, p)
}
return !1
})) : n.debug && console.warn("Pager: >> Size selector not found"), p.initialized = !1, t.triggerHandler("pagerBeforeInitialized", p), D(m, p, !1), "string" == typeof p.ajaxUrl ? (p.ajax = !0, n.widgetOptions.filter_serversideFiltering = !0, n.serverSideSorting = !0, s(m, p)) : (p.ajax = !1, b.appendCache(n, !0), l(m, p)), p.ajax || p.initialized || (p.initializing = !1, p.initialized = !0, s(m, p), n.debug && console.log("Pager: Triggering pagerInitialized"), n.$table.triggerHandler("pagerInitialized", p), n.widgetOptions.filter_initialized && b.hasWidget(m, "filter") || g(m, p, !1)), n.widgetInit.pager = !0
}
})
}
}
}), b.showError = function(b, c, d, e) {
var f, g = a(b),
h = g[0].config,
i = h && h.widgetOptions,
j = h.pager && h.pager.cssErrorRow || i && i.pager_css && i.pager_css.errorRow || "tablesorter-errorRow",
k = typeof c,
l = !0,
m = "",
n = function() {
h.$table.find("thead").find("." + j).remove()
};
if (!g.length) return void console.error("tablesorter showError: no table parameter passed");
if ("function" == typeof h.pager.ajaxError) {
if (l = h.pager.ajaxError(h, c, d, e), l === !1) return n();
m = l
} else if ("function" == typeof i.pager_ajaxError) {
if (l = i.pager_ajaxError(h, c, d, e), l === !1) return n();
m = l
}
if ("" === m)
if ("object" === k) m = 0 === c.status ? "Not connected, verify Network" : 404 === c.status ? "Requested page not found [404]" : 500 === c.status ? "Internal Server Error [500]" : "parsererror" === e ? "Requested JSON parse failed" : "timeout" === e ? "Time out error" : "abort" === e ? "Ajax Request aborted" : "Uncaught error: " + c.statusText + " [" + c.status + "]";
else {
if ("string" !== k) return n();
m = c
}
f = a(/tr\>/.test(m) ? m : '<tr><td colspan="' + h.columns + '">' + m + "</td></tr>").click(function() {
a(this).remove()
}).appendTo(h.$table.find("thead:first")).addClass(j + " " + h.selectorRemove.slice(1)).attr({
role: "alert",
"aria-live": "assertive"
})
}, a.fn.extend({
tablesorterPager: a.tablesorterPager.construct
})
}(jQuery);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论