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 相关文章推荐
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
js判读浏览器是否支持html5的canvas的代码
Nov 18 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
Jul 11 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 define()函数及defined()函数使用详解
2013/06/09 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
在Django框架中编写Contact表单的教程
2015/07/17 Python
pandas数据处理之绘图的实现
2020/06/15 Python
python怎么判断素数
2020/07/01 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
网上开商店的创业计划书
2014/01/19 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
优秀团员个人总结
2015/02/26 职场文书
导游词之清晏园
2019/11/22 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python