jquery ajax分页插件的简单实现


Posted in Javascript onJanuary 27, 2016

说到基于jQuery的ajax分页插件,那我们就先看看主要的代码结构:

1、首先定义一个pager对象:

var sjPager = window.sjPager = {
  opts: {
   //默认属性
   pageSize: 10,
   preText: "pre",
   nextText: "next",
   firstText: "First",
   lastText: "Last",
   shiftingLeft: 3,
   shiftingRight: 3,
   preLeast: 2,
   nextLeast: 2,
   showFirst: true,
   showLast: true,
   url: "",
   type: "POST",
   dataType: "JSON",
   searchParam: {},
   beforeSend: null,
   success: null,
   complete: null,
   error: function () {
    alert("抱歉,请求出错,请重新请求!");
   },
  },
  pagerElement: null,//分页dom元素
  commonHtmlText: {
   //公共文本变量
  },
  init: function (obj, op) {
   //对象初始化
  },
  doPage: function (index, pageSize, searchParam) {
   //执行分页方法
  },
  getTotalPage: function () {
   //获取总页数
  },
  createPreAndFirstBtn: function (pageTextArr) {
   //创建上一页、首页按钮链接
  },
  createNextAndLastBtn: function (pageTextArr) {
   //创建下一页、尾页按钮链接
  },
  createIndexBtn: function (pageTextArr) {
   //中间分页索引按钮链接
  },
  renderHtml: function (pageTextArr) {
   //渲染分页控件到页面
  },
  createSpan: function (text, className) {
   //创建span
  },
  createIndexText: function (index, text) {
   //创建索引文本
  },
  jumpToPage: function () {
   //跳转到
  }
 }

对象包含了分页的属性及用到的方法,doPage()为分页的核心方法。

2、进行jQuery扩展

$.fn.sjAjaxPager = function (option) {
    return sjPager.init($(this), option);
  };

3、插件使用

<body>
   
  <table id="dataTable" border="1px"></table>
  <div id="pager"></div>

 </body>
$(function() {
   $('#pager').sjAjaxPager({
    url: "Handler1.ashx",
    pageSize: 10,
    searchParam: {
     /*
     * 如果有其他的查询条件,直接在这里传入即可
     */
     id: 1,
     name:'test',
    },
    beforeSend: function () {
    },
    success: function (data) {
     /*
     *返回的数据根据自己需要处理
     */
     var tableStr = "<tr><td>Id</td><td>姓名</td><td>年龄</td></tr>";
     $.each(data.items, function(i,v) {
      tableStr += "<tr><td>" + v.Id + "</td><td>" + v.Name + "</td><td>" + v.Age + "</td></tr>";
     });

     $('#dataTable').html(tableStr);
    },
    complete: function () {
    }
   });

   
  })

有没有发现使用方式与直接使用ajax基本是一样一样的?

最后我们可以看下出来的效果:(表格样式没有设置比较丑,分页样式自己也可以根据需要修改css文件)

jquery ajax分页插件的简单实现

F12打开调试工具,点击分页查看发送的请求及响应:

jquery ajax分页插件的简单实现

jquery ajax分页插件的简单实现

pageIndex和pageSize为插件默认的参数,在后台可以直接在Request中获取。特别需要注意的是插件的响应也是需要遵循特定的格式{"total":0,"items":[]},如上图中所示total代表数据总记录数,items代表分页的数据。

这里只有代码的大体结构及呈现的效果,大家不妨自己先动手实现一下。

Javascript 相关文章推荐
javascript版的in_array函数(判断数组中是否存在特定值)
May 09 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
基于jQuery实现搜索关键字自动匹配功能
Mar 26 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
jquery ui dialog替代confirm实例分析
Jan 25 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
Bootstrap table右键功能实现方法
Feb 20 Javascript
webpack2.0搭建前端项目的教程详解
Apr 05 Javascript
利用node.js本地搭建HTTP服务器
Apr 19 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 #Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 #Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 #Javascript
jQuery Easyui实现左右布局
Jan 26 #Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 #Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 #Javascript
详解javascript new的运行机制
Jan 26 #Javascript
You might like
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
MySQL修改密码方法总结
2008/03/25 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
js更优雅的兼容
2010/08/12 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
班干部竞选演讲稿
2014/04/24 职场文书
社区文化建设方案
2014/05/02 职场文书
低碳环保标语
2014/06/12 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python