基于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 相关文章推荐
pjblog中的UBBCode.js
Apr 25 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
jquery实现简单的二级导航下拉菜单效果
Sep 07 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
微信小程序开发中的疑问解答汇总
Jul 03 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
Vue中通过vue-router实现命名视图的问题
Apr 23 Javascript
在nuxt中使用路由重定向的实例
Nov 06 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生成xml简单实例代码
2009/12/16 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
复古服装:RetroStage
2019/05/10 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
英文版区域经理求职信
2013/10/23 职场文书
三年级小学生评语
2014/04/22 职场文书
迎新晚会策划方案
2014/06/13 职场文书
日语专业求职信
2014/07/04 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书