积跬步,聚小流------用smartpaginator来做分页

2023-05-16

|  网络上的实例


(jquery smarypaginator 例图)

如果说是从“百度”上搜索过“jquery分页插件”的朋友,相信对上面的图片不会陌生,几乎所有介绍“jquery分页插件”的文章中都会出现它的影子,当然可能有下载使用过的朋友也发现了,它存在着几个致命的问题:

1、适用于小数据量的访问;(其实这点算不得缺陷,只是适用环境不同而已);

2、页面跳转中跳转页码的输入,小键盘不能录入;

3、参数length,存在一个限制,length如果大于totalrecords、recordsperpage时,是不显示上一页、下一页、首页和尾页的;

但是,瑕不掩瑜,正所谓根本不存在什么完美,合适的才是最好的,它的简单灵活让我在最初就选择了它,并进行修改整理后,完成个人想要的效果。

网上的具体事例可以点击此处:demo-分页插件smartpaginator

|  插件使用说明

首先来看下原始插件的基本方法:

1、引入相应的js和css文件;

<script src="jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="smartpaginator.js" type="text/javascript"></script>
<link href="smartpaginator.css" rel="stylesheet" type="text/css" />

2、写一个div来模拟显示数据,写一个div来放置分页部分;

<div id="pagination_testpart">
</div>
<div id="page_part">
</div>

3、初始化插件(一般我习惯放到另一个单独的js文件中)

$(document).ready(function() {
     $('#page_part').smartpaginator({ 
          totalrecords: total, 
          recordsperpage: items_per_page, 
          next: '下一页', 
          prev: '上一页', 
          first: '首页', 
          last: '末页', 
          go: '前往',
          theme: 'red', 
          initval: current_page,
          onchange: onPageChange
      });
});

function onPageChange(newPageValue) {
          current_page = newPageValue; //根据新的页码做一些改变,比如说页面更新操作
          getImageList(newPageValue);
}

(参考文章:上品物语-博客园)

|  参数介绍

可以参考如下图片:


|  问题解决

对于前面提到的问题,对于后两个进行解决,至于第一个问题,还是之前所说的,只是使用环境不同而已,将我在实例中修改后的贴上来看下:

//重新封装分页插件应用的相应js

$(function(){//第一次加载界面是默认显示第一页
	ajax_getData(1);
});

function ajax_getData(n){ //通过ajax获取json数据
		$.ajax({
			type: "GET",
			url: "data_test.json",//后台给予的数据,可以传递参数来设定
			dataType: "json",
			success: function(data){
				$("#pagination_testpart").html("");
				var a="";
				var perPage=data.length>10?10:data.length;//定义每页显示条数
				var startPage=perPage*(n-1)+1;//定义初始条数
				for(var i=0;i<perPage&&i+startPage<data.length;i++){
					a=a+"<p>"+data[i+startPage].code+"</p>";							        }
				$("#pagination_testpart").html(a);
				tt(data.length,perPage,3,n);	
				},
				error: function(XMLHttpReqst,textStatus,errorThrown){
					alert(errorThrown); 
				}
		});	
}
function tt($totalrecords,$recordsperpage,$length,$initval){
	 $('#page_part').smartpaginator({
				 totalrecords: $totalrecords,
				 recordsperpage: $recordsperpage, 
				 length: $length, 
				 next: '下一页', 
				 prev: '上一页', 
				 first: '首页', 
				 last: '尾页',  
				 theme: 'red', 
				 initval: $initval,
				 controlsalways: true, 
				 onchange: function (newPage) {
					ajax_getData(newPage);
				 }
	});
}

1、修改“小键盘不能录入”的问题;

通过查看封装的js,可以发现问题出现的原因,大约在45行左右,可以发现如下判断,只是判断了主键盘上的数字按键,小键盘肯定不会进行响应。

 var inputPage = $('<input/>').attr('type', 'text').keydown(function (e) {
                    if (isTextSelected(inputPage)) inputPage.val('');
                    if (e.which >= 48 && e.which < 58) {
                        var value = parseInt(inputPage.val() + (e.which - 48));
                        if (!(value > 0 && value <= totalpages)) e.preventDefault();
                    } else if (!(e.which == 8 || e.which == 46)) e.preventDefault();
});/*没有判断加小键盘*/
找到症结所在,我们就可以来进行修复:

var inputPage = $('<input/>').attr('type', 'text').keyup(function (e) {
                    if (isTextSelected(inputPage)) inputPage.val(''){
					var value = inputPage.val();
					value=value.replace(/\D/,'');
					inputPage.val(value);
					value=parseInt(value);}
                     if (value > totalpages)<span style="font-family: Arial, Helvetica, sans-serif;">{</span>
				inputPage.val(totalpages);
				e.preventDefault();}
                 });

2、length参数问题;

大约在代码270行左右,会发现这样一句代码:

  if (totalpages > settings.length) {}

而else中对则对所有按钮添加了class:disabled;

既然症结在此,我们就可以将if条件判断去掉,同时将else中内容删掉即可。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

积跬步,聚小流------用smartpaginator来做分页 的相关文章

  • Spring AOP代码实现:实例演示与注解全解

    1 理解AOP 1 1 什么是AOP AOP xff08 Aspect Oriented Programming xff09 xff0c 面向切面思想 xff0c 是Spring的三大核心思想之一 xff08 两外两个 xff1a IOC
  • Windows下首次安装TensorFlow失败

    TensorFlow是一个基于数据流编程 xff08 dataflow programming xff09 的符号数学系统 xff0c 被广泛应用于各类机器学习 xff08 machine learning xff09 算法的编程实现 xf
  • Mybatis之使用注解开发CRUD

    上一篇演示了如何使用XML来操作Mybatis实现CRUD xff0c 但是大量的XML配置文件的编写是非常烦人的 因此 Mybatis也提供了基于注解的配置方式 xff0c 下面我们来演示一下使用接口加注解来实现CRUD的的例子 首先是创
  • 第16届智能车竞赛双车接力组—直立车经验语录

    第16届智能车竞赛双车接力组 直立车经验语录 前言直立环核心控制算法 串级PID转向环控制算法算法框架搭车方法波形拟合调车方法角速度环整定方法角度环整定方法速度环整定方法转向环整定方法其他问题 END 前言 这是我第一次参加智能车竞赛 xf
  • 时序异常检测方法总结

    异常检测 xff08 Anomaly detection xff09 是时序数据分析最成熟的应用之一 xff0c 目的是从正常的时间序列中识别不正常的事件或行为的过程 异常类型 xff1a 点异常 xff0c 上下文异常 xff0c 集合异
  • 中科大 2019 大数据学院 计算机专业 复试经验分享(一)

    复试已经过去很长时间了 xff0c 从拟录取之后就在马不停蹄的找导师 xff0c 确认 xff0c 沟通暑假学习内容 xff0c 旅行 xff0c 报道等等 现在已经有时间可以好好总结一下复试踩过的坑 大数据学院复试场景复刻 xff1a 复
  • Robocup 仿真2D 学习笔记(二) 球队代码编译和上场

    环境的一些问题 最近在使用rcssserver 和 rcssmonitor时可能会遇到 configure失败的问题 xff0c 可以检查一下文件夹是否有makefile文件 xff0c 如果是编译后的包直接sudo make instal
  • Ubuntu16.04+RTX3090+python3+cuda11.1+ CUDNN  8.04+anaconda3+pytorch-nightly深度学习环境搭建实录

    硬件信息 cpu Intel R Core TM i7 10700 CPU 64 2 90GHz 显卡 GeForce RTX 3090 网卡 Ethernet Connection 17 I219 V 内存 62GiB System me
  • ubuntu16.04 python2.7 cuda10.0 安装pytorch1.1.0 torchvision0.3.0

    工欲善其事 xff0c 必先利其器 显卡驱动版本和cuda版本 xff1f 今天两台电脑训练时发现速度比平时慢了 xff0c 以为是网络的变大导致 但nvidia smi发现显存占用少 xff0c gpu速度占用1 xff0c 同时用gno
  • 强化学习: 参数化动作空间环境gym-platform(1)

    gym platform环境安装 前提 xff1a 已经安装里gym 主页 xff1a https github com cycraig gym platform 安装 xff1a git clone https github com cy
  • 三步使用Docker容器创建RoboCup仿真2D环境

    本文相关视频 xff1a 三步使用Docker容器创建RoboCup仿真2D环境 哔哩哔哩 bilibili RoboCup是机器人足球世界杯 xff0c 最早于1997年在日本名古屋举办 xff0c 有来自全世界38支球队参加仿真和机器人
  • Robocup 仿真2D 学习笔记(四)阵型编辑

    一 阵型文件介绍 阵型文件里设置的是球员在比赛中的跑位点 基于helios base的阵型文件 xff0c 在目录 src formations dt中 阵型的调用在 src strategy cpp 文件 xff1a before kic
  • 2019中科大计算机考研初试经验总结

    能够在2019年290万考研大军中幸存 xff0c 不仅有努力还有运气 中科大大数据学院计算机专业上岸后 xff0c 总结一些快一年考研路上的经验和弯路 xff0c 希望可以对学弟学妹有所帮助 基础情况 xff1a 毕业工作半年辞职考研 x
  • C语言a+++b的问题

    有时候有这道面试题 xff1b int a 61 5 b 61 7 c c 61 a 43 43 43 b 在VC 43 43 里面看一下 xff1b 输出 xff1b 首先 a 43 43 43 b 和a 43 43 43 b俩个表达式概
  • Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境

    前言 robocup2D 是一个仿真机器人足球比赛 xff0c 也是一个研究多智能体强化学习等机器学习理论算法的优秀平台 xff0c 在接下来的一段时间 xff0c 通过学习如何在robocup2D仿真比赛中运用机器学习算法 xff0c 提
  • Vue - v-for 中为什么不能用 index 作为 key

    目录 1 先来看一个例子 2 上述问题的解决方法 3 高效的 Diff 算法原理 4 不能用 index 作为 key 这是一篇脱坑日记 xff0c 在做项目的过程中 xff0c 我使用了 v for 渲染子组件时 xff0c 并将 ind
  • docker安装centos7镜像

    拉取centos7镜像 root 64 localhost docker pull centos 7 启动镜像centos7 xff0c 如果不指定 bin bash xff0c 容器运行后会自动停止 root 64 localhost d
  • Debian apt update 提示 由于没有公钥,无法验证下列签名...

    sudo apt update 忽略 1 http mirrors aliyun com debian stretch InRelease 命中 2 http mirrors aliyun com debian security stret
  • java this的用法

    用类名定义一个变量的时候 xff0c 定义的只是一个引用 xff0c 外面可以通过这个引用来访问这个类里面的属性和方法 public class ThisDemo String name 61 34 Mick 34 public void
  • CSDN 博客备份工具

    前言 核心 登录模块 备份模块 博文扫描模块 演示 如何使用 效果 总结 前言 近段时间以来 听群友博友都在谈论着一件事 CSDN博客怎么没有备份功能啊 这其实也在一定程度上表征着大家对于文章这种知识性产品的重视度越来越高 也对于数据的安全

随机推荐

  • 数据链路层传输故障分析

    数据链路层传输故障分析 依据链路层发送与接收的帧格式 xff0c 说明在数据链路层 网络层 传输层接收数据的过程中 xff0c 出现以下情况时 xff0c 可能出现的问题是什么 xff1f A xff09 利用网络助手可以在接收端接收到发送
  • 【Qt串口调试助手】1.2 - 串口数据接收不发生换行,CH340 / CP2102 多硬件兼容

    上一篇提到 xff1a 对串口接收的显示 xff0c 使用的是当前位置插入 43 移动鼠标光标到末尾的方式 这种方法可以有效解决 串口数据接收发生换行的问题 xff0c 并且解决 CH340 CP2102 多硬件显示结果不一致的问题 那有没
  • Altium AD20的四层板叠层管理、平面层20H内缩

    AD新建的PCB默认为双层板 xff0c 多层板需要自行添加叠层 下面以四层板为例进行说明 AD20的叠层管理 xff0c 叠层为四层板 工具 层叠管理器 xff08 快捷键 xff1a D K xff09 能够看出这是一个普通的双层板结构
  • 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门

    以MPU6500 HMC5983 AK8975 BMP280 MS5611为传感元件的10轴IMU PCB xff0c 集成MEMS加速度计 陀螺仪 地磁 气压计 有三种不同尺寸的PCB组合样式 xff0c Altium格式 xff0c 可
  • 操作系统任务执行和任务切换的基本实现原理

    任务的执行 软件或处理器可以使用以下方法之一来调度执行一个任务 xff1a 使用CALL指令明确地调用一个任务 xff1b 使用JMP指令明确地跳转到一个任务 Linux内核使用的方式 由处理器 隐含地调用一个中断句柄处理任务 xff1b
  • AD20 PCB导出Gerber、拼板,华秋DFM一键拼板,同理支持其他PCB EDA软件的Gerber导入与拼板

    Altium PCB的拼板着实头疼 xff0c 因没有自带的拼板功能 xff0c 每次都要手动重复同样的操作 xff0c 费时费力 xff0c 有没有种简单的方法呢 xff1f 这里推荐华秋DFM 华秋DFM是一款高效的PCB设计软件 xf
  • 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法

    安装win11电脑必须支持TPM2 0和必须支持安全启动的解决方法 一 开启TPM设置二 开启安全启动设置三 更改硬盘模式 xff08 需硬盘支持 xff09 安装 Win11 的基本要求 xff0c 在win11最低要求是提示 xff0c
  • QCY T8无线蓝牙耳机连接电脑时无限断连解决办法

    参考 xff1a https www zhihu com question 434919223 answer 1652118128 知乎问题中十三大佬的回答亲测有效 xff0c 记录一下 在win10连t8时会出现一个音频类别的QCY T8
  • Linux 高并发服务器实战 - 5 项目实战

    Linux 高并发服务器实战 5 项目实战 1 阻塞 非阻塞 同步 异步 网络IO 典型的一次IO的两个阶段是什么 xff1f 数据就绪 和 数据读写 网络IO阶段1 在操作系统 TCP接收缓冲区 数据就绪 xff1a 根据系统IO操作的就
  • js实现打字机效果---Day06

    我常想象这样一幅画面 xff1a 素雅的大背景 xff0c 伴着可心的音乐 xff0c 优雅旋转着的芭蕾舞者 xff0c 旁边那不断打出的文字 xff0c 仿佛就这样娓娓道来他们那美美的故事 xff1b 也常想象 xff1a 呼喇啦甩动的大
  • 纯css3实现漂亮的对话框----Day07

    姑且先不来讨论css3跟css的区别 xff0c 也不说html和html5的不同 xff0c 虽然这很关键 xff0c 但是现阶段还真的没整利落了 xff0c 姑且就这些应用先用着 xff0c 等自己有些见解了再来探讨那些深层次的问题 先
  • 纯css3实现饼状图-------Day21

    现代网站在商务应用中比较广泛 xff0c 什么oa xff0c 什么erp xff0c 除了导入导出 xff0c 就是数据统计 xff0c 再不然就来个做个报表 xff0c 而饼状图作为数据的一种直观统计显示 xff0c 应用是非常广泛的
  • 你是如何理解var e=e||window.event的------Day26

    你是如何理解var e 61 e window event的 xff1f 相信很多人都能给我个回答说是 xff1a 为了实现多种浏览器兼容 不错 xff0c 确实是为了实现浏览器兼容 xff0c 但是它又是如何实现浏览器兼容的呢 xff1f
  • js实现回放拖拽轨迹-------Day48

    今天有点小高兴 xff0c csdn博客浏览量过万了 xff0c 在过去还从来没有过这么高的浏览量呢 xff0c 不得不说 xff0c 太多时候还是有些矫情 xff0c 可看到这些鼓励还是忍不住高兴啊 xff0c 至少 xff0c 这样让我
  • js实现动态删除表格的行或者列-------Day57

    昨天记录了动态添加表格的一行 xff0c 当然这个一行是指一行数据 xff0c 也就是说一行多少列也是加上的 xff0c 并且第几列的内容都可以添加上 xff0c 先来回顾下它的实现的关键点 xff1a 1 var row 61 table
  • 了解MSIL汇编和IL汇编评估堆栈

    assembly extern mscorlib assembly Test ver 1 0 1 0 module test exe method static void main cil managed maxstack 1 entryp
  • js实现表格的选中一行-------Day58

    最开始想更多的用js来动态操作表格 xff0c 是因为在应用了easyUI之后 xff0c 发现直接写一个 lt table id 61 34 tt 34 gt lt table gt xff0c 这就够了 xff0c 界面里面就剩下这么一
  • 幸有一事,生死可许

    已然到了岁末 xff0c 2014就要结束 xff0c 迎来崭新的2015 xff0c 颇多感慨 xff0c 颇多难忘 与其说是2014年是我职业生涯中至关重要的一年 xff0c 倒不如说是我人生道路上极为重要的一步来的更为贴切 这一年忙忙
  • 积跬步,聚小流-------关于UML时序图

    uml时序图的存在 在上一篇中记录了uml类图 xff0c 用类图来描述代码中所需要的类以及相互之间的关系 xff0c 也就立体的将整个程序框架展现在了我们面前 xff0c 像一幅画 xff0c 有山有水有人 一张照片只能定格当时的美好 x
  • 积跬步,聚小流------用smartpaginator来做分页

    网络上的实例 xff08 jquery smarypaginator 例图 xff09 如果说是从 百度 上搜索过 jquery分页插件 的朋友 xff0c 相信对上面的图片不会陌生 xff0c 几乎所有介绍 jquery分页插件 的文章中