Jquery 分页插件之Jquery Pagination


Posted in Javascript onAugust 25, 2015

实用jQuery分页特效插件jquery.pagination.js,基于jQuery实现,可根据pageselectCallback函数callback调用通过ajax调用动态数据,目前的方法是生成JSON数据到JS文件,调用的数据是JSON格式数据,缺点是数据是一次性读出来的,效率会差些,插件支持众多参数的自定义配置功能,还是很不错的,大家可以根据自己的想法进行改进。

有同学问道jquery的简单分页插件,原来有同事写过一个简单[Javascript 使用回调函数的自定义分页插件--自带样式]。

今天分享一个功能比较强大的jquery分页插件:jquery.pagination。

官方地址:http://esimakin.github.io/twbs-pagination/

简介与说明

此Jquery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此方法,因为加载会比较慢。

原插件CSS不太合理,使用浮动,故无法方便实现左右方向的定位,且未清除浮动,在中文修改版中我对其进行了优化,使其支持text-align的定位。

对原js文件注释进行了中文翻译,demo页面也是汉化了的,demo页面的js与原demo有一些出入,但核心不变。

使用方法

跟一般的jQuery插件一样,此插件使用也很简单便捷。方法是pagination,例如$("#page").pagination(100);,这里的100参数是必须的,表示显示项目的总个数,这是最简单的使用,得到的显示如下:

还有一点值得一提的是分页列表需要放在class类为pagination的标签内,您可以使用text-align属性控制分页居中显示还是居右显示。

回调函数一般用来装载对应分页显示的内容,具体参见demo源文件。

参数

使用举例

例如下面的使用代码:

$("#Pagination").pagination(56, {
  num_edge_entries: 2,
  num_display_entries: 4,
  callback: pageselectCallback,
  items_per_page:1
});

项目demo:

定义分页相关参数:

var pageSize = 10;
var allCount = 0;
var currentPage = 1;
var ajaxUrl = '../../Service/ActiceHandler.ashx';
var oper = "list";

html:

<table id="sample-table-2" class="table table-striped table-bordered table-hover">
                 <thead>
                   <tr> 
                    <th>编号</th>
                    <th>标题</th>
                     <th>缩略图</th> 
                         <th>海报</th>
               <%--     <th>社区</th>
                    <th>商品</th>--%>
                    <th>开始时间</th>
                    <th>结束时间</th>
                    <th>是否幻灯</th>
                    <th>操作</th>
                  </tr>
                 </thead>
                <tbody id="tBodyList">
                </tbody>
              </table>
              <div id="Pagination" class="row"></div>

获取数据并调用分页函数:

function GetList(pageIndex) {
  var searchName = $("#txtSearchName").val();
  var cityId = GetCity();
  var endTime;
  var beginTime;
  var communityName;
  var title;
  $.ajax({
    type: "post",
    dataType: 'json',
    url: ajaxUrl,
    data: {
      pageSize: pageSize,
      Operate: "list",
      currentPageIndex: pageIndex,
      endTime: $("#txtDeadTime").val(),
      Cityid: cityId,
      beginTime: $("#txtStartTime").val(),
      communityName: $("#txtsqname").val(),
      title: $("#txttitle").val()
    },
    success: function (data, textStatus) {
      if (data != null) {
        var model = eval(data);
        if (model != null && model != "undefined") {
          var data = eval(model.Instance);
          allCount = model.TotalCount;
          var html = '';
          ListActive = data;
          $.each(data, function (key, val) {
            html = html + '<tr>';
            html = html + ' <td width="100px" class="text-primary">' + val.id + '</td>';
            html = html + ' <td class="left">' + val.title + '</td>';
            html = html + ' <td class="left"><img width="80px" height="60px" src="' + val.smallphotourl + '"></img></td>';
            html = html + ' <td class="left"><img width="80px" height="60px" src="' + val.bigphotourl + '"></img></td>'; 
            html = html + ' <td class="left">' + $.formatDate("yyyy-MM-dd HH:mm", data.begintime) + '</td>';
            html = html + ' <td class="left">' + $.formatDate("yyyy-MM-dd HH:mm", data.endtime) + '</td>';
            html = html + ' <td class="left">' + '<a href="#modal-form" onclick="SetHomeIndex(\'' + val.id + '\',\'' + val.title
              + '\');return false" class="btn btn-xs btn-success " data-toggle="modal"><i class="icon-key"></i>首页幻灯设置</a>' + '</td>';
            html = html + ' <td class="left">'; 
            if (oper == "list") {
              html = html + ' <a href="Add.aspx?RightID=0&Id=' + val.id + '" class="green" title="编辑"><i class="icon-edit bigger-130"></i></a> ';
              html = html + ' <a href="#" onclick="DeleteActive(\'' + val.id + '\',\'' + val.title + '\')" class="red" title="注销">';
              html = html + ' <i class="icon-trash bigger-130"></i></a>';
            }
            else if (oper == "msg") { 
              html = html + '  <input type="checkbox" onchange=\'SetCheckedPro("' + val.id + '","' + val.title + '");return false;\' id="seelctactive_' + val.id + '" value="' + val.title + '" />';
            }
            html = html + ' <a href="#" onclick="PreviewUrl(\'http://sq.huilife.cn/index.php?g=Wap&m=Homeactivity&de<a href="http://www.suchso.com/programmer/chengxuyuan-duanzi-bug-shangwang.html" class="keylink" title=" Bug修复" target="_blank">bug</a>=1&a=show&id=' + val.id + '\')" class="blue" title="查看"><i class="icon-zoom-in bigger-130"></i></a> ';
            html = html + ' </td></tr>'; 
          });
          $("#tBodyList").html(html);
          //设置分页
          if (currentPage == 1) {
            var initPagination = function () {
              // 创建分页
              $("#Pagination").pagination(allCount, {
                num_edge_entries: 1, //边缘页数
                num_display_entries: 2, //主体页数
                prev_text: "<<",
                next_text: ">>",
                callback: PageSelectCallback,
                items_per_page: pageSize //每页显示1项
              });
            }();
            currentPage = 100;
            if (allCount == 0) $('#divNumInfo').html("0-0条 共0条");
          }
        }
        else {
          alert("加载数据失败!"); return;
        }
      }
    },
    complete: function (XMLHttpRequest, textStatus) {
    },
    error: function (e) {
      alert("加载数据错误!"); return;
    }
  });
}

示例二:

Jquery Pagination插件代码:

<div id="page2" class="m-pagination"></div>
<script type="text/javascript">
//请求格式: .../GetPageData?query=test&pageIndex=0&pageSize=10
//返回数据: {"data":[1,2,3,4,5,6,7,8,9,10],"total":800}
$("#page2").page({
  remote: {
    url: '/GetPageData', //请求地址
    params: { query: "test" },    //自定义请求参数
    beforeSend: function(XMLHttpRequest){
      //...
    },
    success: function (result, pageIndex) {
      //回调函数
      //result 为 请求返回的数据,呈现数据
    },
    complete: function(XMLHttpRequest, textStatu){
      //...
    }
    pageIndexName: 'pageIndex',   //请求参数,当前页数,索引从0开始
    pageSizeName: 'pageSize',    //请求参数,每页数量
    totalName: 'total'       //指定返回数据的总数据量的字段名
  }
});
</script>

以上内容是本文针对Jquery 分页插件之Jquery Pagination的全部叙述,希望大家喜欢。

Javascript 相关文章推荐
几个比较实用的JavaScript 测试及效验工具
Apr 18 Javascript
JQuery实现简单验证码提示解决方案
Dec 20 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
Mac下安装vue
Apr 11 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 Javascript
Javascript实现秒表计时游戏
May 27 Javascript
0基础学习前端开发的一些建议
Jul 14 Javascript
js实现的tab标签切换效果代码分享
Aug 25 #Javascript
JavaScript实现向右伸出的多级网页菜单效果
Aug 25 #Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 #Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 #Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 #Javascript
iframe中子父类窗口调用JS的方法及注意事项
Aug 25 #Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 #Javascript
You might like
Protoss建筑一览
2020/03/14 星际争霸
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
对python sklearn one-hot编码详解
2018/07/10 Python
python爬虫超时的处理的实例
2018/12/19 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
文明旅游倡议书
2015/04/28 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers