基于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 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
JavaScript插件化开发教程 (三)
Jan 27 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
Angular2学习笔记——详解路由器模型(Router)
Dec 02 Javascript
跟混乱的页面弹窗说再见
Apr 11 Javascript
基于JS实现简单滑块拼图游戏
Oct 12 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
Jul 22 Javascript
浅谈js数组splice删除某个元素爬坑
Oct 14 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/11/26 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
javascript常用功能汇总
2015/07/05 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
vue实现简单的MVVM框架
2018/08/05 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python多进程机制实例详解
2015/07/02 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
django的csrf实现过程详解
2019/07/26 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
情侣吵架检讨书
2014/02/05 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
小英雄雨来观后感
2015/06/09 职场文书
期中考试后的感想
2015/08/07 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
Python进行区间取值案例讲解
2021/08/02 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL