基于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 相关文章推荐
Javascript UrlDecode函数代码
Jan 09 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
vue实现消息的无缝滚动效果的示例代码
Dec 05 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 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实现验证码功能
2006/10/09 PHP
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
微信小程序progress组件使用详解
2018/01/31 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
详解ECMAScript typeof用法
2018/07/25 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
幼儿园小班评语大全
2014/04/17 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
承诺书模板大全
2015/05/04 职场文书