基于bootstrap3和jquery的分页插件


Posted in Javascript onJuly 31, 2015

自己写的一款基于bootstrap3和jquery的分页插件,初学jquery插件写法,写的很一般。拿出来献丑了。

/**
* 基于bootstrap3的jquery分页插件
* 调用方式分两种
* 1.直接调用法
*  普通大小
*  $.mypage(id,now,max,fn);
*  大尺寸
*  $.mypagelg(id,now,max,fn);
*  小尺寸
*  $.mypagesm(id,now,max,fn);
* 
*  参数说明:id为放置分页容器的ID,now为当前页,max为最大页,fn为回掉函数,回掉函数有一个参数为点击的页码
* 
* 2.选择器调用法
*  $(selector).mypage({
*   now:now,
*   last:last,
*   callback:fn,
*   max:max,
*   first:first,
*   style,style
*  });
*  参数说明:now为当前页,max为最大页,callback为回掉函数,回掉函数有一个参数为点击的页码,style可选参数,有"big" 和"small",fitst为首页按钮的文本,last为尾页按钮的文本
* 
* 当最大页为1时将不显示,当当前页设置小于1时默认为1,当前页大于最大页时默认为最大页
* 引用本js前请先引用jquery的js文件和bootstrap3的css文件
* 
*/
(function ($) {
 $.fn.mypage = function(options){
  var defaults = {
   now:1,
   max:1,
   callback:null,
   style:null,
   first:"«",
   last:"»"
  }
  var options = $.extend(defaults, options);
  this.each(function(){
   options.max=Math.round(options.max);
   options.now=Math.round(options.now);
   if(options.max<=1||isNaN(options.max)||isNaN(options.now))return;
   options.now=options.now<1?1:options.now>options.max?options.max:options.now;
   var mainbox=$(this).html("");
   var page_box= $("<ul></ul>").addClass("pagination").appendTo(mainbox);
   if(options.style!=null) page_box.addClass(options.style=="big"?"pagination-lg":options.style=="small"?"pagination-sm":options.style)
   var page_back=$("<li><a href=\"javascript:void(0)\">"+options.first+"</a></li>").appendTo(page_box);
   if(options.now==1) page_back.addClass("disabled");
   else page_back.on("click",function(){if(typeof options.callback === "function")options.callback(1);})
   var page_next=$("<li><a href=\"javascript:void(0)\">"+options.last+"</a></li>");
   if(options.now==options.max) page_next.addClass("disabled");
   else page_next.on("click",function(){if(typeof options.callback === "function")options.callback(options.max);})
   var page_now=$("<li><a href=\"javascript:void(0)\">"+options.now+"</a></li>").addClass("active");
   if(options.max<=10)
    for(var i=1;i<=options.max;i++) $.mypageInsertItem(i,options.now,page_now,page_box,options.callback);
   else
    if(options.now<5){
     for(var i=1;i<=6;i++) $.mypageInsertItem(i,options.now,page_now,page_box,options.callback);
     $.mypageInsertOther(page_box);
    }else if(options.max-options.now<4){
     $.mypageInsertOther(page_box);
     for(var i=options.max-5;i<=options.max;i++) $.mypageInsertItem(i,options.now,page_now,page_box,options.callback);
    }else{
     $.mypageInsertOther(page_box);
     for(var i=options.now-2;i<=options.now+2;i++) $.mypageInsertItem(i,options.now,page_now,page_box,options.callback);
     $.mypageInsertOther(page_box);
    }
   page_next.appendTo(page_box);
  })
 },
 $.mypageInsertItem=function(i,now,page_now,page_box,fn){
  if(i!=now) $("<li><a href=\"javascript:void(0)\">"+i+"</a></li>").on("click",function(){if(typeof fn === "function")fn($(this).text());}).appendTo(page_box);
  else page_now.appendTo(page_box);
 },
 $.mypageInsertOther=function(page_box){
  $("<li><a href=\"javascript:void(0)\">…</a></li>").addClass("disabled").appendTo(page_box);
 },
 $.mypage=function(id,now,max,fn){$("#"+id).mypage({now:now,max:max,callback:fn})},
 $.mypagesm=function(id,now,max,fn){$("#"+id).mypage({now:now,max:max,callback:fn,style:"pagination-sm"})},
 $.mypagelg=function(id,now,max,fn){$("#"+id).mypage({now:now,max:max,callback:fn,style:"pagination-lg"})}
})(jQuery);

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

Javascript 相关文章推荐
Javascript的闭包
Dec 31 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
浅析javascript闭包 实例分析
Dec 25 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
Feb 22 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 Javascript
JS实现百度搜索框关键字推荐
Feb 17 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
jquery-tips悬浮提示插件分享
Jul 31 #Javascript
javascript实现检验的各种规则
Jul 31 #Javascript
纯JS实现本地图片预览的方法
Jul 31 #Javascript
javascript动画算法实例分析
Jul 31 #Javascript
jquery实现手机号码选号的方法
Jul 31 #Javascript
javascript文本模板用法实例
Jul 31 #Javascript
Javascript实现网络监测的方法
Jul 31 #Javascript
You might like
php调用C代码的实现方法
2014/03/11 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Python反射用法实例简析
2017/12/22 Python
python opencv实现图像边缘检测
2019/04/29 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
Python 硬币兑换问题
2019/07/29 Python
解析python的局部变量和全局变量
2019/08/15 Python
python实现打砖块游戏
2020/02/25 Python
python实现文法左递归的消除方法
2020/05/22 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
房地产活动策划方案
2014/05/14 职场文书
初中学习计划书范文
2014/09/15 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL