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 相关文章推荐
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
js 通用javascript函数库整理
Aug 14 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
Angular 开发学习之Angular CLI的安装使用
Dec 31 Javascript
javaScript动态添加Li元素的实例
Feb 24 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
JavaScript Tab菜单实现过程解析
May 13 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
简单实现Python爬取网络图片
2018/04/01 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
计算机专业毕业生推荐信
2013/11/25 职场文书
管理失职检讨书
2014/02/12 职场文书
先进集体事迹材料
2014/02/17 职场文书
公司感谢信范文
2015/01/22 职场文书
三八妇女节致辞
2015/07/31 职场文书
无故旷工检讨书
2015/08/15 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
element多个表单校验的实现
2021/05/27 Javascript
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android