本文实例讲述了jQuery pager.js 插件动态分页功能。分享给大家供大家参考,具体如下:
pager.js 代码
function Page(opt){ var set = $.extend({num:null,startnum:1,elem:null,callback:null},opt||{}); if(set.startnum>set.num||set.startnum<1){ set.startnum = 1; } var n = 0,htm = ''; var clickpages = { elem:set.elem, num:set.num, callback:set.callback, init:function(){ this.elem.next('div.pageJump').children('.button').unbind('click') this.JumpPages(); this.elem.children('li').click(function () { var txt = $(this).children('a').text(); var page = '', ele = null; var page1 = parseInt(clickpages.elem.children('li.active').attr('page')); if (isNaN(parseInt(txt))) { switch (txt) { case '下一页': if (page1 == clickpages.num) { return; } if (page1 >= (clickpages.num - 2) || clickpages.num <= 6 || page1 < 3) { ele = clickpages.elem.children('li.active').next(); } else { clickpages.newPages('next', page1 + 1); ele = clickpages.elem.children('li.active'); } break; case '上一页': if (page1 == '1') { return; } if (page1 >= (clickpages.num - 1) || page1 <= 3 || clickpages.num <= 6) { ele = clickpages.elem.children('li.active').prev(); } else { clickpages.newPages('prev', page1 - 1); ele = clickpages.elem.children('li.active'); } break; case '首页': if (page1 == '1') { return; } if (clickpages.num > 6) { clickpages.newPages('首页', 1); } ele = clickpages.elem.children('li[page=1]'); break; case '尾页': if (page1 == clickpages.num) { return; } if (clickpages.num > 6) { clickpages.newPages('尾页', clickpages.num); } ele = clickpages.elem.children('li[page=' + clickpages.num + ']'); break; case '...': return; } } else { // if ((parseInt(txt) >= (clickpages.num - 3) || parseInt(txt) <= 3) && clickpages.num > 6) { // clickpages.newPages('jump', parseInt(txt)); // } // ele = $(this); // } // page = clickpages.actPages(ele); // if (page != '' && page != page1) { // if (clickpages.callback){ // clickpages.callback(parseInt(page)); // } var i = parseInt(txt); if(isNaN(i)||(i<=0)||i>clickpages.num){ return; }else if(clickpages.num>6){ clickpages.newPages('jump',i); }else{ var ele = clickpages.elem.children('li[page='+i+']'); clickpages.actPages(ele); if (clickpages.callback){ clickpages.callback(i); } return; } if (clickpages.callback){ clickpages.callback(i); } } }); }, //active actPages:function (ele) { ele.addClass('active').siblings().removeClass('active'); return clickpages.elem.children('li.active').text(); }, JumpPages:function () { this.elem.next('div.pageJump').children('.button').click(function(){ var i = parseInt($(this).siblings('input').val()); if(isNaN(i)||(i<=0)||i>clickpages.num){ return; }else if(clickpages.num>6){ clickpages.newPages('jump',i); }else{ var ele = clickpages.elem.children('li[page='+i+']'); clickpages.actPages(ele); if (clickpages.callback){ clickpages.callback(i); } return; } if (clickpages.callback){ clickpages.callback(i); } }) }, //newpages newPages:function (type, i) { var html = "",htmlLeft="",htmlRight="",htmlC=""; var HL = '<li><a>...</a></li>'; html = '<li class="topEnd"><a aria-label="Previous">首页</a></li>' for (var n = 0;n<5;n++){ htmlC += '<li '+((n-1)==0?'class="active"':'')+' page="'+(i+n-1)+'"><a>'+(i+n-1)+'</a></li>'; htmlLeft += '<li '+((n+2)==i?'class="active"':'')+' page="'+(n+2)+'"><a>'+(n+2)+'</a></li>'; htmlRight += '<li '+((set.num+n-5)==i?'class="active"':'')+' page="'+(set.num+n-5)+'"><a>'+(set.num+n-5)+'</a></li>'; } switch (type) { case "next": if(i<=4){ html+='<li page="1"><a>1</a></li>'+htmlLeft+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; }else if(i>=(set.num-3)){ html+='<li page="1"><a>1</a></li>'+HL+htmlRight+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; }else{ html += '<li page="1"><a>1</a></li>'+HL+htmlC+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; } break; case "prev": if(i<=4){ html+='<li page="1"><a>1</a></li>'+htmlLeft+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; }else if(i>=(set.num-3)){ html+='<li page="1"><a>1</a></li>'+HL+htmlRight+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; }else{ html += '<li page="1"><a>1</a></li>'+HL+htmlC+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; } break; case "首页" : html+='<li class="active" page="1"><a>1</a></li>'+htmlLeft+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; break; case "尾页" : html+='<li page="1"><a>1</a></li>'+HL+htmlRight+'<li class="active" page="'+set.num+'"><a>'+set.num+'</a></li>'; break; case "jump" : if(i<=4){ if(i==1){ html+='<li class="active" page="1"><a>1</a></li>'+htmlLeft+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; }else{ html+='<li page="1"><a>1</a></li>'+htmlLeft+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; } }else if((i>=set.num-3)&&(set.num>=7)){ if(i==set.num){ html+='<li page="1"><a>1</a></li>'+HL+htmlRight+'<li class="active" page="'+set.num+'"><a>'+set.num+'</a></li>'; }else{ html+='<li page="1"><a>1</a></li>'+HL+htmlRight+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; } }else{ html += '<li page="1"><a>1</a></li>'+HL+htmlC+HL+'<li page="'+set.num+'"><a>'+set.num+'</a></li>'; } } html += '<li class="topEnd"><a aria-label="Next">尾页</a></li>'; if (this.num > 5 || this.num < 3) { set.elem.html(html); clickpages.init({num:set.num,elem:set.elem,callback:set.callback}); } } } if(set.num<=1){ $(".pagination").html(''); return; }else if(parseInt(set.num)<=6){ n = parseInt(set.num); var html='<li class="topEnd"><a aria-label="Previous">首页</a></li>'; for(var i=1;i<=n;i++){ if(i==set.startnum){ html+='<li class="active" page="'+i+'"><a>'+i+'</a></li>'; }else{ html+='<li page="'+i+'"><a>'+i+'</a></li>'; } } html +='<li class="topEnd"><a aria-label="Next">尾页</a></li>'; set.elem.html(html); clickpages.init(); }else{ clickpages.newPages("jump",set.startnum) } }
上面是 pager.js部分
html部分
<script type="text/javascript" charset="utf-8" src="/template/js/jquery-1.9.1.min.js"></script> <script type="text/javascript" charset="utf-8" src="/template/js/pager.js"></script> </head> <div class="dataListPag"> <ul class="pagination" id="page1"> </ul> <div class="pageJump"> <span>前往</span> <input type="text"/> <span>页</span> <button type="button" class="button">GO</button> </div> </div> <script> Page({ num:{$page_mum}, //页码数 startnum:{$page}, //当前页面有列表切换,在列表切换的时候修改数字,跳转到当前页 elem:$('#page1'), //指定的元素 callback:function(n){ //回调函数 // 在这里请求当前跳转需要用到的数据 // alert('跳转到第'+n+'页,请求此页数据,此页有列表切换'); window.location.href='id=xigua_re:system_msg&op=private_msglist&page='+n; } }); // 数据列表的循环获取 $('.userArticleType li').on('click',function () { $('.userArticleType li').removeClass('choose'); $(this).addClass('choose') }) </script>
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery切换特效与技巧总结》、《jQuery遍历算法与技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
本文向大家介绍jquery pagination插件动态分页实例(Bootstrap分页),包括了jquery pagination插件动态分页实例(Bootstrap分页)的使用技巧和注意事项,需要的朋友参考一下 第一种Bootstrap -默认的分页实例,供大家参考,具体内容如下 第二个实例jquery pagination分页控件 分页效果: 源码:https://github.com/gb
本文向大家介绍yii2实现分页,带搜索的分页功能示例,包括了yii2实现分页,带搜索的分页功能示例的使用技巧和注意事项,需要的朋友参考一下 一、模型配置 事例会用到三个models。文章类别表和文章表用gii生成下即可,最后一个是搜索验证模型。其中,只讲下一个联表和搜索验证。其他不用操作。 1.文章表关联 2.搜索模型 common/models/search/创建ArticleSearch.ph
本文向大家介绍JSP实现添加功能和分页显示实例分析,包括了JSP实现添加功能和分页显示实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JSP实现添加功能和分页显示的方法。分享给大家供大家参考。具体如下: 学习目标: ① 进一步掌握MVC设计模式; ② 掌握添加功能的实现; ③ 掌握分页显示功能的实现。 主要内容: ① 通过用户信息添加功能进一步介绍MVC模式; ② 通过用户信息的分
对于大多数网站(尤其是博客),当文章越来越多的时候,就会有分页显示文章列表的需求。Jekyll 已经自建分页功能,你只需要根据约定放置文件即可。 在 Jekyll 3 中,需要在 gems 中安装 jekyll-paginate 插件,并添加到你的 Gemfile 和 _config.yml 中。在 Jekyll 2 中,分页是标准功能。 分页功能只支持 HTML 文件 Jekyll 的分页功能不
本文向大家介绍js实现分页功能,包括了js实现分页功能的使用技巧和注意事项,需要的朋友参考一下 本文仅为自己记录下编写过程,如有兴趣,或者疑问,请与我联系。 写前背景:java开发工作经验一年,现项目为SSM框架,使用maven管理项目。需要页面查询实现分页,网上找了很多插件,单独页面实现是好的,可是放到我的页面就没有效果,苦于自己也找不到原因,故写以下代码,很是粗糙,不过懒得整理成js文件了。
本文向大家介绍ThinkPHP实现分页功能,包括了ThinkPHP实现分页功能的使用技巧和注意事项,需要的朋友参考一下 前几篇(上传,缩略图,验证码,自动验证表单)文章介绍的功能实现都是基于ThinkPHP框架封装好的类进行实现的,所以这次自己写一个分页类在框架中使用。 首先在根目录建一个Tools文件夹,在Tools文件夹下建Page.class.php类文件,这样以后自定义的工具类都可放在To