基于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的Function详细
Nov 14 Javascript
写出更好的JavaScript程序之undefined篇(中)
Nov 23 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
详解jQuery的表单验证插件--Validation
Dec 21 Javascript
微信小程序自定义select下拉选项框组件的实现代码
Aug 28 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
jquery实现简单每周轮换的日历
Sep 10 jQuery
js实现菜单跳转效果
Dec 11 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php短址转换实现方法
2015/02/25 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
ES6中定义类和对象的方法示例
2019/07/31 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
介绍一下Ruby的多线程处理
2013/02/01 面试题
物流专业大学生求职信范文
2013/10/28 职场文书
函授毕业生自我鉴定
2013/11/06 职场文书
秘书英文求职信范文
2014/01/31 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
关于责任的演讲稿
2014/05/20 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
logback 实现给变量指定默认值
2021/08/30 Java/Android
Python学习之os包使用教程详解
2022/03/21 Python