基于jQuery封装的通用JS分页组件及AJAX调用示例

作者:异步漫步

时间:2026-10-26

浏览:294

本文介绍了一个基于jQuery封装的轻量级JavaScript分页组件。该组件支持自定义总记录数、每页显示条数及当前页码,自动计算总页数并生成包含首页、上一页、下一页、尾页及页码列表的导航HTML。文中提供了完整的封装代码,并结合jQuery AJAX演示了如何将该分页组件与后端接口结合,实现动态数据加载与页面渲染,适用于需要快速实现列表分页功能的Web项目。

文章目录

jQuery分页组件封装实现

代码如下:

 
(function ($) {
var PageFunc = function PageFunc() { }
$.PageFunc = function (Total, PageSize, curPageNum, FunUrl) {
if (PageSize == "" || PageSize == null || PageSize == undefined) {
PageSize = 10;
} 
if (curPageNum == "" || curPageNum == null || curPageNum == undefined) {
curPageNum = 1;
} 
//计算总页数
Total = parseInt(Total); //总记录数
PageSize = parseInt(PageSize); //每页显示数
curPageNum = parseInt(curPageNum); //当前页
//总页数
var AllPage = Math.floor(Total / PageSize);
if (Total % PageSize != 0) {
AllPage++;
} 
var navHtml = "";
if (curPageNum <= 0)
curPageNum = 1;
if (AllPage > 1) {
if (curPageNum != 1) {
//处理首页连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('1')\" >|<</a></span>&nbsp;&nbsp;";
} 
if (curPageNum > 1) {
//处理上一页的连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (curPageNum - 1) + "')\" ><<</a></span>&nbsp;&nbsp;";
} 
else {
navHtml += "<span class=\"disabled\"><<</span>&nbsp;&nbsp;";
} 
var currint = 5;
for (var i = 0; i <= 10; i++) {
//一共最多显示10个页码,前面5个,后面5个
if ((curPageNum + i - currint) >= 1 && (curPageNum + i - currint) <= AllPage)
if (currint == i) {
//当前页处理
navHtml += "<span lass=\"current\">[" + curPageNum + "]</span>&nbsp;&nbsp;";
} 
else {
//一般页处理
var n = curPageNum + i - currint;
navHtml += "<a href=\"javascript:" + FunUrl + "('" + (parseInt(n)) + "')\">" + n + "</a>&nbsp;&nbsp;";
} 
} 
if (curPageNum < AllPage) {
//处理下一页的链接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (parseInt(curPageNum) + 1) + "')\">>></a></span>&nbsp;&nbsp;";
} 
else {
navHtml += "<span class=\"disabled\">>></span>&nbsp;&nbsp;";
} 
if (curPageNum != AllPage) {
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + AllPage + "')\" >>|</a></span>&nbsp;&nbsp";
} 
} 
navHtml += "<span>[" + curPageNum + "/" + AllPage + "]</span>&nbsp;&nbsp;";
return navHtml;
}; 
})(jQuery);

AJAX数据加载与分页调用示例

下边是调用方法:


代码如下:

 
function QueryList(curpage) {
if (curpage == "" || curpage == null || curpage == undefined) {
curpage = 1;
} 
var pagesize = 10;
var Countys = $("#Countys").val(); //县
var enddate = $("#enddate").val(); //结束时间
var begindate = $("#begindate").val(); //开始时间
$.ajax({
url: "",
type: "POST",
data: { "Countys": Countys, "enddate": enddate, "begindate": begindate, "curpage": curpage, "pagesize": pagesize },
dataType: "json",
error: function (xhr, status, errMsg) { window.location.href = "/CommonError/index/" + errMsg.code + "?txt=" + errMsg.msg; },
success: function (mydata) {
var str = "";
$.each(mydata.Tdata, function (i, item) {
str += "<tr>"
str += "<td>" + $.FormatDateTime(item.ControlBeginTime, false) + "</td>";
str += "<td>" + $.FormatDateTime(item.ControlEndTime, false) + "</td>";
str += "<td>" + item.Name + "</td>";
str += "<td>" + item.PlateNumber + "</td>";
str += "<td>" + item.ControlDept + "</td>";
if (item.IsAll == "0") {
str += "<td>全县布控</td>"
} 
else {
str += "<td>按卡口点布控</td>"
} 
str += "<td>" + item.IsAll == "0" ? "全县布控" : "按卡口点布控" + "</td>"
str += "<td>修改</td>"
str += "<td>删除</td>"
str += "<td>详细</td>"
str + "</tr>"
}); 
$("#srh_rslt tbody").html(str);
$(".pagination").html($.PageFunc(mydata.total, pagesize, curpage, "QueryList"));
} 
}); 
} 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章