基于jquery编写分页插件
来源: 阅读:725 次 日期:2016-07-22 16:08:36
温馨提示: 小编为您整理了“基于jquery编写分页插件”,方便广大网友查阅!

扩展JQuery很容易,作为一个练习,编写一个简单的分页插件,代码量不大,直接看代码好了:

$.fn.mypagination = function(totalProperty,opts){ 

  opts = $.extend({ 

    perPage:10, 

    callback:function(){ 

    } 

  },opts||{}); 

  return this.each(function(){ 

    function numPages(){ 

      return Math.ceil(totalProperty/opts.perPage); 

    } 

    function selectPage(page){ 

      return function(){ 

        currPage = page; 

        if (page<0) currPage = 0; 

        if (page>=numPages()) currPage = numPages()-1; 

        render(); 

        $('img.page-wait',panel).attr('src','images/wait.gif'); 

        opts.callback(currPage+1); 

        $('img.page-wait',panel).attr('src','images/nowait.gif'); 

      } 

    } 

    function render(){ 

      var html = '<table><tbody><tr>' 

        +'<td><a href="#"><img class="page-first"></a></td>'

        +'<td><a href="#"><img class="page-prev"></a></td>'

        +'<td><span>第<input type="text" class="page-num">页/共'+numPages()+'页</span></td>'

        +'<td><a href="#"><img class="page-next"></a></td>'

        +'<td><a href="#"><img class="page-last"></a></td>'

        +'<td><img src="images/nowait.gif" class="page-wait"></td>'

        +'<td><span style="padding-left:50px;">检索到'+totalProperty+'记录</span></td>'

        +'</tr></tbody></table>'; 

      var imgFirst = 'images/page-first-disabled.gif'; 

      var imgPrev = 'images/page-prev-disabled.gif'; 

      var imgNext = 'images/page-next-disabled.gif'; 

      var imgLast = 'images/page-last-disabled.gif'; 

      if (currPage > 0){ 

        imgFirst = 'images/page-first.gif'; 

        imgPrev = 'images/page-prev.gif'; 

      } 

      if (currPage < numPages()-1){ 

        imgNext = 'images/page-next.gif'; 

        imgLast = 'images/page-last.gif'; 

      } 

      panel.empty(); 

      panel.append(html); 

      $('img.page-first',panel) 

        .bind('click',selectPage(0)) 

        .attr('src',imgFirst);  

      $('img.page-prev',panel) 

        .bind('click',selectPage(currPage-1)) 

        .attr('src',imgPrev);   

      $('img.page-next',panel) 

        .bind('click',selectPage(currPage+1)) 

        .attr('src',imgNext);   

      $('img.page-last',panel) 

        .bind('click',selectPage(numPages()-1)) 

        .attr('src',imgLast); 

      $('input.page-num',panel) 

        .val(currPage+1) 

        .change(function(){ 

          selectPage($(this).val()-1)(); 

        }); 

    } 

    var currPage = 0; 

    var panel = $(this); 

    render(); 

  }); 

下面测试一下:

<head> 

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

  <link rel="stylesheet" href="mypagination.css"/> 

  <script type="text/javascript" src="jquery-1.2.6.js"></script> 

  <script type="text/javascript" src="jquery.mypagination.js"></script> 

  <script> 

    $(document).ready(function(){ 

      $('#mypage').mypagination(10112,{ 

        callback:function(page){ 

          alert(page); 

        } 

      }); 

    }); 

  </script> 

</head> 

<div id="mypage" class="mypagination"></div> 

运行效果图如下:

名单

以上就是本文的全部内容,希望对大家的学习有所帮助。

更多信息请查看网络编程
手机网站地址:基于jquery编写分页插件
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map