读书人

jQuery分页领航

发布时间: 2012-06-28 15:20:03 作者: rapoo

jQuery分页导航
由于做项目时很多模块都需要分页导航,网上找到的又大都不是想要的,所以自己动手简单写了一个。该分页导航主要是和ajax配合使用,ajax向后台传递current,pageSize两个参数,分别表示页数,页面记录大小,返回json,主要有total属性和列表数组。点击分页导航数字的时候重复上述过程。当然我以下只是简单师范,并未涉及ajax。代码如下:(还有很多不完善的地方,望见谅。)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="jquery-1.6.4.js"></script><script type="text/javascript">//界面加载完毕的初始化方法 $(document).ready(function(){initPage("page",125,1,10,7);});   /**    * CopyRight By JasionNan    * 该几个函数主要用于页面导航    * div --标签的id值    * total --ajax返回的记录总数    * current --第几页    * pageSize --每页显示的记录数    * count --导航显示的页数,即要显示多少个数字    * 需重写goToPage函数    */ var div,total,current=1,pageSize,count;function initPage(div,total,current,pageSize,count){this.div=div;this.total=total;this.current=current;this.pageSize=pageSize;this.count=count;this.pageList=pageList;pageList();}function pageList(){//count表示每页显示的标签数,奇数   var pages=parseInt(this.total/this.pageSize);//求出总页数   if(this.total%this.pageSize!=0){       pages++;   }   if(pages<2) return;   var preVal=this.current-1;   var nextVal=this.current+1;   var pre=$("<a href='javascript:void(0)' onclick='goToPage("+preVal+")'>上一页</a>");   var next=$("<a href='javascript:void(0)' onclick='goToPage("+nextVal+")'>下一页</a>");   if(pages<=this.count){       if(this.current>1){          $('#'+this.div).append(pre);         }       for(var i=1;i<=pages;i++){          if(this.current==i){            $('#'+this.div).append("<a>"+i+"</a>");            }else{            $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");          }       }   }else{       var left=this.current-1,right=pages-this.current,middle=parseInt(this.count/2);       if(left<=middle&left>=0){//左边页数小于count/2          var rcount=this.count-1-left;//右边显示标签个数          if(this.current>1){            $('#'+this.div).append(pre);              for(var i=1;i<=left;i++){               $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");            }          }          $('#'+this.div).append("<a>"+this.current+"</a>");          if(rcount<right){             for(var i=1;i<=(rcount-1);i++){                var base=this.current+i;                $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+base+")'>"+base+"</a>");             }              $('#'+this.div).append("<a>...</a>");             $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+pages+")'>"+pages+"</a>");          }else{             for(var i=this.current+1;i<=pages;i++){                $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");             }          }       }else if(left>middle){//左边页数个数大于middle          $('#'+this.div).append(pre);          $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage(1)'>"+1+"</a>");          $('#'+this.div).append("<a>...</a>");          var rpages=pages-this.current;          if(rpages<=middle){            var lcount=this.count-1-rpages;            for(var i=this.current-lcount+1;i<this.current;i++){               $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");            }            $('#'+this.div).append("<a>"+current+"</a>");            for(var i=this.current+1;i<=pages;i++){               $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");            }          }else{            for(var i=this.current-middle+1;i<this.current;i++){               $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");            }            $('#'+this.div).append("<a>"+this.current+"</a>");            for(var i=this.current+1;i<=this.current+middle-1;i++){               $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+i+")'>"+i+"</a>");            }            $('#'+this.div).append("<a>...</a>");            $('#'+this.div).append("<a href='javascript:void(0)' onclick='goToPage("+pages+")'>"+pages+"</a>");          }       }   }   if(this.current<pages){       $('#'+this.div).append(next);   }   //添加样式   $('#'+this.div+" a").css("margin",3);}function goToPage(page){  $("#"+this.div).append("<br>");  this.current=page;  pageList();}</script><title>分页导航</title></head><body><div id="page"></div></body></html>

效果如下:

读书人网 >Web前端

热点推荐