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 相关文章推荐
js传值 判断
Oct 26 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
JS常用函数使用指南
Nov 23 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
jQuery事件对象总结
Oct 17 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
js使用highlight.js高亮你的代码
Aug 18 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
jquery插件实现轮播图效果
Oct 19 jQuery
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/01 无线电
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
jQuery 动态酷效果实现总结
2009/12/27 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
浅谈MySQL中的触发器
2015/05/05 Python
解析Python中while true的使用
2015/10/13 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
测试工程师职业规划书
2014/02/06 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
竞聘书格式及范文
2014/03/31 职场文书
诚信考试标语
2014/06/24 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
办公室文员岗位职责
2015/02/04 职场文书
硕士学位申请报告
2015/05/15 职场文书
认识实习感想
2015/08/10 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书