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 checkbox全选/取消全选实现代码
Nov 14 Javascript
用js实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
Javascript学习笔记之相等符号与严格相等符号
Nov 23 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
JavaScript的RequireJS库入门指南
Jul 01 Javascript
Javascript的无new构建实例详解
May 15 Javascript
Angularjs自定义指令Directive详解
May 27 Javascript
玩转vue的slot内容分发
Sep 22 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 Javascript
angularjs自定义过滤器demo示例
Aug 24 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 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代码运行时间查看类代码分享
2011/08/06 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
javascript实现数独解法
2015/03/14 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
js倒计时抢购实例
2015/12/20 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
import的本质解析
2017/10/30 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
电气工程自动化求职信
2014/03/14 职场文书
征婚广告词
2014/03/17 职场文书
赔偿协议书范本
2014/04/15 职场文书
安全目标责任书
2014/07/22 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
python获取带有返回值的多线程
2022/05/02 Python