分页pagination实现及其应用
1、分页jquery.page.js
//分页插件 /** 2014-08-05 ch **/ (function ($) { var ms = { init: function (obj, args) { return (function () { ms.fillHtml(obj, args); ms.bindEvent(obj, args); })(); }, //填充html fillHtml: function (obj, args) { return (function () { obj.empty(); //上一页 if (args.current > 1) { obj.append('<a href="javascript:;" class="prevPage"><i class="fa fa-angle-double-left" aria-hidden="true"></i></a>'); } else { obj.remove('.prevPage'); obj.append('<span class="disabled"><i class="fa fa-angle-double-left" aria-hidden="true"></i></span>'); } //中间页码 if (args.current != 1 && args.current >= 4 && args.pageCount != 4) { obj.append('<a href="javascript:;" class="tcdNumber">' + 1 + '</a>'); } if (args.current - 2 > 2 && args.current <= args.pageCount && args.pageCount > 5) { obj.append('<span class="tcdPageCode-ellipsis">...</span>'); } var start = args.current - 2, end = args.current + 2; if ((start > 1 && args.current < 4) || args.current == 1) { end++; } if (args.current > args.pageCount - 4 && args.current >= args.pageCount) { start--; } for (; start <= end; start++) { if (start <= args.pageCount && start >= 1) { if (start != args.current) { obj.append('<a href="javascript:;" class="tcdNumber">' + start + '</a>'); } else { obj.append('<span class="current">' + start + '</span>'); } } } if (args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5) { obj.append('<span class="tcdPageCode-ellipsis">...</span>'); } if (args.current != args.pageCount && args.current < args.pageCount - 2 && args.pageCount != 4) { obj.append('<a href="javascript:;" class="tcdNumber">' + args.pageCount + '</a>'); } //下一页 if (args.current < args.pageCount) { obj.append('<a href="javascript:;" class="nextPage"><i class="fa fa-angle-double-right"></i></a>'); } else { obj.remove('.nextPage'); obj.append('<span class="disabled"><i class="fa fa-angle-double-right"></i></span>'); } })(); }, //绑定事件 bindEvent: function (obj, args) { return (function () { $(obj).find('.tcdNumber').off("click").on("click", function () { var current = parseInt($(this).text()); ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount }); if (typeof (args.backFn) == "function") { args.backFn(current); } });
// 不用这个是为了适应那种每次查询之后,分页条数变化的情况,而且这种情况很常见,
// 如果采用下面这种方式,会出现多次绑定,多次查询的情况。
//obj.on("click","a.tcdNumber",function(){ // var current = parseInt($(this).text()); // ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount }); // if (typeof (args.backFn) == "function") { // args.backFn(current); // } //}); $(obj).find('.prevPage').off('click').on("click", function () { var current = parseInt(obj.children("span.current").text()); ms.fillHtml(obj, { "current": current - 1, "pageCount": args.pageCount }); if (typeof (args.backFn) == "function") { args.backFn(current - 1); } }); //上一页 //obj.on("click","a.prevPage",function(){ // var current = parseInt(obj.children("span.current").text()); // ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount}); // if(typeof(args.backFn)=="function"){ // args.backFn(current-1); // } //}); $(obj).find('.nextPage').off('click').on("click", function () { var current = parseInt(obj.children("span.current").text()); ms.fillHtml(obj, { "current": current + 1, "pageCount": args.pageCount }); if (typeof (args.backFn) == "function") { args.backFn(current + 1); } }); //下一页 //obj.on("click","a.nextPage",function(){ // var current = parseInt(obj.children("span.current").text()); // ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount}); // if(typeof(args.backFn)=="function"){ // args.backFn(current+1); // } //}); })(); } } $.fn.createPage = function (options) { var args = $.extend({ pageCount: 10, current: 1, backFn: function () { } }, options); ms.init(this, args); } })(jQuery); //代码整理:懒人之家 www.lanrenzhijia.com
2、使用方法
2.1 js的应用
首先把jquery.page.js引入
第二js的关键代码
$(".tcdPageCode").createPage({ pageCount: 总页数, current: 当前页, backFn: function (p) { //单击回调方法,p是当前页码 查询方法(p); } });
2.2 样式代码
.tcdPageCode { padding: 15px 20px; color: #ccc; display: inline-block; padding-left: 0; margin: 20px 0; border-radius: 4px; } .tcdPageCode a { display: inline-block; color: #0D0D0D; display: inline-block; height: 25px; line-height: 25px; padding: 6px 12px; border: 1px solid #ddd; vertical-align: middle; padding: 6px 12px; line-height: 1.42857143; text-decoration: none; } .tcdPageCode span.current { display: inline-block; height: 25px; line-height: 25px; padding: 6px 12px; color: #0D0D0D; background-color: #CCCCCC; border: 1px solid #ddd; vertical-align: middle; line-height: 1.42857143; text-decoration: none; } .tcdPageCode-ellipsis { display: inline-block; width: 24px; text-align: center; } .tcdPageCode span.disabled { display: inline-block; height: 25px; line-height: 25px; padding: 6px 12px; color: #bfbfbf; background: #f2f2f2; border: 1px solid #bfbfbf; border-radius: 4px; vertical-align: middle; }
至于例子,不想写了...
作者:BestNow
出处:http://www.cnblogs.com/BestNow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/BestNow/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?