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中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
js检测用户输入密码强度
Oct 22 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
JS简单生成两个数字之间随机数的方法
Aug 03 Javascript
js仿小米官网图片轮播特效
Sep 29 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
卸载vue2.0并升级vue_cli3.0的实例讲解
Feb 16 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 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
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python numpy 反转 reverse示例
2019/12/04 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
毕业生自荐书
2014/02/02 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
2014年物流工作总结
2014/11/25 职场文书
教师个人教学总结
2015/02/11 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
详解用Python把PDF转为Word方法总结
2021/04/27 Python
JS中如何优雅的使用async await详解
2021/10/05 Javascript
JavaScript文档对象模型DOM
2021/11/20 Javascript
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers