基于jquery编写分页插件


Posted in Javascript onMarch 07, 2016

扩展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编写分页插件

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

Javascript 相关文章推荐
HTTP状态代码以及定义(解释)
Feb 02 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
jQuery实现左右切换焦点图
Apr 03 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
Jul 10 Javascript
ES6 中可以提升幸福度的小功能
Aug 06 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
Vue 配合eiement动态路由,权限验证的方法
Sep 26 Javascript
Vue中的v-for指令不起效果的解决方法
Sep 27 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 #Javascript
javascript特殊日历控件分享
Mar 07 #Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
Mar 07 #Javascript
论JavaScript模块化编程
Mar 07 #Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 #Javascript
不定义JQuery插件 不要说会JQuery
Mar 07 #Javascript
javascript数组去重小结
Mar 07 #Javascript
You might like
php学习之 循环结构实现代码
2011/06/09 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
移动节点的jquery代码
2014/01/13 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
快速入门Vue
2016/12/19 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
ASP.NET Core中的配置详解
2021/02/05 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
清扬洗发水广告词
2014/03/14 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
学生请假条格式
2014/04/11 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书