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生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
jqTransform美化表单
Oct 10 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
May 18 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
微信小程序网络请求封装示例
Jul 24 Javascript
详解JavaScript 为什么要有 Symbol 类型?
Apr 03 Javascript
如何自定义微信小程序tabbar上边框的颜色
Jul 09 Javascript
vue router返回到指定的路由的场景分析
Nov 10 Javascript
vue+element UI实现树形表格
Dec 29 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
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与SQL注入攻击防范小技巧
2011/09/16 PHP
PHP反射API示例分享
2016/10/08 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
vue实现通讯录功能
2018/07/14 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
python学习必备知识汇总
2017/09/08 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python批量解压zip文件的方法
2019/08/20 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
python能做哪方面的工作
2020/06/15 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
公益广告宣传方案
2014/02/28 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
起诉状范本
2015/05/20 职场文书
活动主持人开场白
2015/05/28 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python