jQuery實(shí)現(xiàn)的簡(jiǎn)單分頁(yè)示例

字號(hào):


    本文實(shí)例講述了jQuery實(shí)現(xiàn)的簡(jiǎn)單分頁(yè)。分享給大家供大家參考,具體如下:
    代碼如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS分頁(yè)Class - 風(fēng)干的果子</title>
    <style type="text/css">
    a {margin:3px; text-decoration:none;}
    </style>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
    //jquery頁(yè)面加載開(kāi)始
    $(function()
    {
      var pageDiv1=new jsPage("list","all","p1","3");
      pageMethod.call(pageDiv1);
      var pageDiv2=new jsPage("list2","all","p2","5");
      pageMethod.call(pageDiv2);
    })//$
    //jquery 頁(yè)面加載結(jié)束
    //方法: pageMethod
    function pageMethod()
    {
      var obj=this;
      obj.resetTotal();
      obj.reloadpage("1",obj.list_class);
      obj.page(); //生成頁(yè)碼
      ready2go.call(obj);
    }
    //方法:ready2go
    function ready2go()
    {
      var obj=this;
      $("#"+obj.page_obj_id+" a").live("click",function()
      { //點(diǎn)擊頁(yè)碼的時(shí)候跳到相應(yīng)頁(yè)
      obj.target_p=parseInt($(this).attr("p"));
      gotopage.call(obj,obj.target_p);
      })
    }
    // 方法: showClass
    function showClass(list,x,pDiv,pSize){
      var pObj=new jsPage(list,x,pDiv,pSize);
      pageMethod.call(pObj);
    }
    // 方法: jsPage
    function jsPage(list_id,list_class,page_obj_id,pagesize)
    {
      // list_id 結(jié)果集UL的id
      // list_class 要顯示的類別
      // page_id 存放頁(yè)碼的id
      // pagesize 每頁(yè)顯示多少條
      this.list_obj_id=list_id;
      this.list_Obj=$("#"+list_id);
      this.li=$("#"+list_id+" li");
      this.li.hide();
      this.page_obj_id=page_obj_id;
      this.page_obj=$("#"+page_obj_id); //存放頁(yè)碼的div
      this.list_class=list_class; // 類別
      if(list_class=="all")
      {
        this.results=this.li.length; // 總記錄數(shù)等于所有記錄
      }
      else
      {
        this.results=$("#"+list_id+" li."+list_class).length; // 總記錄數(shù)等于指定類別的li數(shù)
      }
      this.totalpage; // 總頁(yè)數(shù)
      this.pagesize=pagesize; //每頁(yè)記錄數(shù)
      this.cpage=1; //當(dāng)前頁(yè),默認(rèn)顯示第一頁(yè)
      this.count;
      this.target_p;
      this.curcount;
      this.outstr= ""; // 輸出頁(yè)碼html
    }//jsPage結(jié)束
    //方法: gotopage
    function gotopage(target){
      this.cpage = target;    //把頁(yè)面計(jì)數(shù)定位到第幾頁(yè)
      this.page();
      this.reloadpage(target,this.list_class);
    }
    //給對(duì)象jsPage 增加函數(shù) reloadpage
    jsPage.prototype.reloadpage=function(p,resultType)
    {
      this.li.hide();
      for(var i=this.pagesize*p-this.pagesize;i<this.pagesize*p;i++)
      {
        if(resultType=="all")
        {
        this.li.eq(i).show();
        }else
        {
        $("#"+this.list_obj_id+" li."+resultType).eq(i).show();
        }
      }
    }
    //給對(duì)象jsPage 增加函數(shù) resetTotal
    jsPage.prototype.resetTotal=function()
    {
      if(this.results==0){
        this.totalpage=0;
        this.cpage=0;
      }else if(this.results<=this.pagesize)
      {
        this.totalpage=1;
      }
      else if(parseInt(this.results/this.pagesize)==1)
      {
        this.totalpage=2;
      }
      else if(parseInt(this.results/this.pagesize)>1 && this.results%this.pagesize==0){
        this.totalpage=this.results/this.pagesize;
      }
      else
      {
        this.totalpage=parseInt(this.results/this.pagesize)+1;
      }
    }//resetTotal()
    //jsPage 對(duì)象增加函數(shù) page
    jsPage.prototype.page=function()
    {
      if(this.totalpage<=10)
      {    //總頁(yè)數(shù)小于十頁(yè)  頁(yè)碼以十頁(yè)為單位
        for (this.count=1;this.count<=this.totalpage;this.count++)
        {
          if(this.count!=this.cpage)
          {
            this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+this.count+"' >"+this.count+"</a>";
          }else
          {
            this.outstr = this.outstr + "<span class='current' >"+this.count+"</span>";
          }
        }
      }
      if(this.totalpage>10)
      {    //總頁(yè)數(shù)大于十頁(yè)
        if(parseInt((this.cpage-1)/10) == 0)
        {
          for (this.count=1;this.count<=10;this.count++)
          {
            if(this.count!=this.cpage)
            {
              this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+this.count+"' >"+this.count+"</a>";
            }
            else
            {
              this.outstr = this.outstr + "<span class='current'>"+this.count+"</span>";
            }
          }
          this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+this.count+"' >»</a>";
        }
        else if(parseInt((this.cpage-1)/10) == parseInt(this.totalpage/10))
        {
          this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+(parseInt((this.cpage-1)/10)*10)+"' >«<\/a>";
          for (this.count=parseInt(this.totalpage/10)*10+1;this.count<=this.totalpage;this.count++)
           {
            if(this.count!=this.cpage)
            {
              this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+this.count+"' >"+this.count+"</a>";
            }
            else
            {
              this.outstr = this.outstr + "<span class='current'>"+this.count+"</span>";
            }
          }
        }
        else
        {
          var lastP;
          this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+(parseInt((this.cpage-1)/10)*10)+"' >«<\/a>";
          for (this.count=parseInt((this.cpage-1)/10)*10+1;this.count<=parseInt((this.cpage-1)/10)*10+10;this.count++)
          {
            if(this.count!=this.cpage)
            {
              this.outstr = this.outstr + "<a href='javascript:void(0)' p='"+this.count+"' >"+this.count+"</a>";
            }
            else
            {
              this.outstr = this.outstr + "<span class='current'>"+this.count+"</span>";
            }
            if(this.count==this.totalpage)
            {
              lastP="";
            }
            else
            {
              lastP="<a href='javascript:void(0)' p='"+(this.count+1)+"' >»</a>";
            }
          }
          this.outstr = this.outstr + lastP;
        }
      }
      document.getElementById(this.page_obj_id).innerHTML = "<div><span id='info'>共"+this.totalpage+"頁(yè) 第"+this.cpage+"頁(yè)<\/span>" + this.outstr + "<\/div>";
      this.outstr = "";
    }
      </script>
    </head>
    <body>
      <a onclick="showClass('list','mm','p1','3')" href="#">美女</a> <a onclick="showClass('list','gg','p1','3')"
        href="#">帥哥</a> <a onclick="showClass('list','all','p1','3')" href="#">全部</a><br />
      <ul id="list">
        <li>美女A</li>
        <li>帥哥A</li>
        <li>美女B</li>
        <li>帥哥B</li>
        <li>美女C</li>
        <li>帥哥C</li>
        <li>美女D</li>
        <li>帥哥D</li>
        <li>美女E</li>
        <li>帥哥E</li>
        <li>美女F</li>
        <li>帥哥F</li>
        <li>美女G</li>
        <li>帥哥G</li>
        <li>美女H</li>
        <li>帥哥H</li>
        <li>美女A</li>
        <li>帥哥A</li>
        <li>美女B</li>
        <li>帥哥B</li>
        <li>美女C</li>
        <li>帥哥C</li>
        <li>美女D</li>
        <li>帥哥D</li>
        <li>美女E</li>
        <li>帥哥E</li>
        <li>美女F</li>
        <li>帥哥F</li>
        <li>美女G</li>
        <li>帥哥G</li>
        <li>美女H</li>
        <li>帥哥H</li>
        <li>美女A</li>
        <li>帥哥A</li>
        <li>美女B</li>
        <li>帥哥B</li>
        <li>美女C</li>
        <li>帥哥C</li>
        <li>美女D</li>
        <li>帥哥D</li>
        <li>美女E</li>
        <li>帥哥E</li>
        <li>美女F</li>
        <li>帥哥F</li>
        <li>美女G</li>
        <li>帥哥G</li>
        <li>美女H</li>
        <li>帥哥H</li>
        <li>美女A</li>
        <li>帥哥A</li>
        <li>美女B</li>
        <li>帥哥B</li>
        <li>美女C</li>
        <li>帥哥C</li>
        <li>美女D</li>
        <li>帥哥D</li>
        <li>美女E</li>
        <li>帥哥E</li>
        <li>美女F</li>
        <li>帥哥F</li>
        <li>帥哥G</li>
        <li>帥哥H</li>
        <li>帥哥G</li>
      </ul>
      <br />
      <div id="p1">
      </div>
      <br />
      <br />
      <a onclick="showClass('list2','music','p2','5')" href="#">音樂(lè)</a> <a onclick="showClass('list2','movie','p2','5')"
        href="#">電影</a> <a onclick="showClass('list2','all','p2','5')" href="#">全部</a><br />
      <ul id="list2">
        <li>音樂(lè)A</li>
        <li>電影A</li>
        <li>音樂(lè)B</li>
        <li>電影B</li>
        <li>音樂(lè)C</li>
        <li>電影C</li>
        <li>音樂(lè)D</li>
        <li>電影D</li>
        <li>音樂(lè)E</li>
        <li>電影E</li>
        <li>音樂(lè)F</li>
        <li>電影F</li>
      </ul>
      <br />
      <div id="p2">
      </div>
    </body>
    </html>
    希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。