jquery.pager.js实现分页效果

本文实例为大家分享了jquery.pager.js实现分页的具体代码,供大家参考,具体内容如下

1.html

<link href="/stylesheets/Pager.css" rel="external nofollow" rel="stylesheet" type="text/css"/>
  <script src="/javascripts/web/jquery.pager.js" type="text/javascript"></script>

<body>
      <div id="pager">
        <div id="countPage" style="display:none">{{maxPage}}</div>
        <div id="title" style="display:none">{{title}}</div>
        <div id="nowPage" style="display:none">{{page}}</div>
      </div>
</body>
<script type="text/javascript">
  var title =jQuery("#title").text() ;
  var pageCount =parseInt(jQuery("#countPage").text()) ;
  var nowPage=parseInt(jQuery("#nowPage").text());
  jQuery(function(){
    $("#pager").pager({ pagenumber: nowPage, pagecount: pageCount, buttonClickCallback: PageClick });//pagenumber:当前页,pagecount:总页数
  });
  PageClick = function(pageclickednumber) {
    $("#pager").pager({
      pagenumber: pageclickednumber, pagecount: pageCount, buttonClickCallback: PageClick
    });
    window.location.href = "/article/search/"+title+"/"+pageclickednumber;
  }
</script>

2.Pager.css

#pager ul.pages{
  display:block;
  border:none;
  text-transform:uppercase;
  font-size:10px;margin:10px 0 50px;padding:0;
}
#pager ul.pages li{
  list-style:none;
  float:left;
  border:1px solid #ccc;
  text-decoration:none;
  margin:-20px 5px 0 0;padding:5px;
}
#pager ul.pages li:hover{border:1px solid #003f7e; }
#pager ul.pages li.pgEmpty{
  border:1px solid #eee;
  color:#eee;
}
#pager ul.pages li.pgCurrent{
  border:1px solid #3c90d9;
  color: #fff;
  font-weight:700;
  /*background-color:#eee;*/
  background: #3c90d9 none repeat scroll 0 0;
}
#pager{margin-left: 290px;}

3.jquery.pager.js

/*
 * jQuery pager plugin
 * Version 1.0 (12/22/2008)
 * @requires jQuery v1.2.6 or later
 *
 * Example at: http://jonpauldavies.github.com/JQuery/Pager/PagerDemo.html
 *
 * Copyright (c) 2008-2009 Jon Paul Davies
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Read the related blog post and contact the author at http://www.j-dee.com/2008/12/22/jquery-pager-plugin/
 *
 * This version is far from perfect and doesn't manage it's own state, therefore contributions are more than welcome!
 *
 * Usage: .pager({ pagenumber: 1, pagecount: 15, buttonClickCallback: PagerClickTest });
 *
 * Where pagenumber is the visible page number
 *    pagecount is the total number of pages to display
 *    buttonClickCallback is the method to fire when a pager button is clicked.
 *
 * buttonClickCallback signiture is PagerClickTest = function(pageclickednumber)
 * Where pageclickednumber is the number of the page clicked in the control.
 *
 * The included Pager.CSS file is a dependancy but can obviously tweaked to your wishes
 * Tested in IE6 IE7 Firefox & Safari. Any browser strangeness, please report.
 */
(function($) {

  $.fn.pager = function(options) {

    var opts = $.extend({}, $.fn.pager.defaults, options);

    return this.each(function() {

      // empty out the destination element and then render out the pager with the supplied options
      $(this).empty().append(renderpager(parseInt(options.pagenumber), parseInt(options.pagecount), options.buttonClickCallback));

      // specify correct cursor activity
      $('.pages li').mouseover(function() { document.body.style.cursor = "pointer"; }).mouseout(function() { document.body.style.cursor = "auto"; });
    });
  };

  // render and return the pager with the supplied options
  function renderpager(pagenumber, pagecount, buttonClickCallback) {

    // setup $pager to hold render
    var $pager = $('<ul class="pages"></ul>');

    // add in the previous and next buttons
    //$pager.append(renderButton('first', pagenumber, pagecount, buttonClickCallback)).append(renderButton('prev', pagenumber, pagecount, buttonClickCallback));
    $pager.append(renderButton('上一页', pagenumber, pagecount, buttonClickCallback));
    // pager currently only handles 10 viewable pages ( could be easily parameterized, maybe in next version ) so handle edge cases
    var startPoint = 1;
    //var endPoint = 9;
    var endPoint = 5;
    if (pagenumber > 4 && pagenumber<pagecount-1) {
      startPoint = pagenumber - 2;
      endPoint = pagenumber + 2;
    }
    if(pagenumber>pagecount-2&& pagenumber<pagecount+1){
      startPoint = pagecount - 4;
      endPoint = pagecount;
    }
    if (endPoint > pagecount) {
      startPoint = pagecount - 8;
      endPoint = pagecount;
    }

    if (startPoint < 1) {
      startPoint = 1;
    }

    // loop thru visible pages and render buttons
    for (var page = startPoint; page <= endPoint; page++) {

      var currentButton = $('<li class="page-number">' + (page) + '</li>');

      page == pagenumber ? currentButton.addClass('pgCurrent') : currentButton.click(function() { buttonClickCallback(this.firstChild.data); });
      currentButton.appendTo($pager);
    }

    // render in the next and last buttons before returning the whole rendered control back.
    //$pager.append(renderButton('next', pagenumber, pagecount, buttonClickCallback)).append(renderButton('last', pagenumber, pagecount, buttonClickCallback));
    $pager.append(renderButton('下一页', pagenumber, pagecount, buttonClickCallback));
    return $pager;
  }

  // renders and returns a 'specialized' button, ie 'next', 'previous' etc. rather than a page number button
  function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) {

    var $Button = $('<li class="pgNext">' + buttonLabel + '</li>');

    var destPage = 1;

    // work out destination page for required button type
    switch (buttonLabel) {
      case "first":
        destPage = 1;
        break;
      case "上一页":
        destPage = pagenumber - 1;
        break;
      case "下一页":
        destPage = pagenumber + 1;
        break;
      case "last":
        destPage = pagecount;
        break;
    }

    // disable and 'grey' out buttons if not needed.
    if (buttonLabel == "first" || buttonLabel == "上一页") {
      pagenumber <= 1 ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
    }
    else {
      pagenumber >= pagecount ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
    }

    return $Button;
  }

  // pager defaults. hardly worth bothering with in this case but used as placeholder for expansion in the next version
  $.fn.pager.defaults = {
    pagenumber: 1,
    pagecount: 1
  };

})(jQuery);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery scroll事件实现监控滚动条分页示例

    scroll事件适用于window对象,但也可滚动iframe框架与CSS overflow属性设置为scroll的元素. 复制代码 代码如下: $(document).ready(function () { //本人习惯这样写了    $(window).scroll(function () {        //$(window).scrollTop()这个方法是当前滚动条滚动的距离        //$(window).height()获取当前窗体的高度        //$(docume

  • 基于jQuery的实现简单的分页控件

    1:效果图 2:素材 3:编码 3.1思考 需要做什么? 1:分页控件需要向后台发送请求,发送的参数包括当前页,每页显示数量,查询条件:并且获取数据加载到当前页面: 2:进行修改删除操作的时候能记住当前页: 3:查询后翻页的时候可以可以记住当前查询的条件 3.2实现 HTML 复制代码 代码如下: <!--存储数据的容器--> <div class="tableData"> </div> <!--分页控件显示--> <div cla

  • 用jQuery中的ajax分页实现代码

    功能简介:主要功能就是分页显示数据了,可在配置文件中配置每页要显示的页码,可以做多条件联合查询,这里只是做一个简单的查询.欢迎拍砖,有问题的还望大虾们斧正哈.看看这个效果图,无刷新的噢!! 具体实现请看源码: 1.aspx页面 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxPage.aspx.cs" Inherits="Measur

  • jQuery EasyUI datagrid实现本地分页的方法

    本文实例讲述了jQuery EasyUI datagrid实现本地分页的方法.分享给大家供大家参考.具体如下: 一般分页都是后台做,前端做无论从哪方面考虑都不合适.但是有的时候还是有这种需求. 这里重点用到了pagination的监听,以及JS数组的slice方法来完成.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title></title&g

  • jQuery EasyUI API 中文文档 - Pagination分页

    用 $.fn.pagination.defaults 重写了 defaults. 依赖 linkbutton 用法 复制代码 代码如下: <div id="pp" style="background:#efefef;border:1px solid #ccc;"></div> 复制代码 代码如下: $('#pp').pagination({ total:2000, pageSize:10 }); 特性 名称 类型 说明 默认值 total n

  • jQuery DataTables插件自定义Ajax分页实例解析

    一.问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分类效果. 后端的分页接口已经写好了,不涉及条件查询,需要传入页码(pageNo)和页面显示数据条数(pageSize),显示相应页的显示记录,且不能修改后端接口. 二.分析 先来分析下分页实现. 一是后端分页:这种情况下,在后端很容易实现,在官网上有示例,不多说明. 二是前端分页:前端分页也是支持的,不过需要一次把所有数据都获取到才可以. 看到这里,问题来了.由于后端在目前的情况下是更改不

  • 基于JQuery的Pager分页器实现代码

    实例效果图如下 使用说明 需要使用jQuery库文件和JQuery Pager库文件(目前版本1.1) 素材准备 分页器CSS样式文件,可复制如下CSS样式,可命名为Pager.css 复制代码 代码如下: #pager ul.pages { display:block; border:none; text-transform:uppercase; font-size:10px; margin:10px 0 50px; padding:0; } #pager ul.pages li { list

  • JQuery+Ajax无刷新分页的实例代码

    先看效果图: 实现原理很简单,使用了jquery.pagination这个插件,每当点击页码时异步去服务器去取该页的数据,简单介绍如下: 一.数据库表结构:很简单  就四个字段 分别是News_id  News_title  News_time  News_readtimes 二.前台页面代码: 复制代码 代码如下: <head runat="server">    <title>JQuery无刷新分页</title>    <link hre

  • jQuery中jqGrid分页实现代码

    (1)页面代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UT

  • jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版

    原项目地址:http://plugins.jquery.com/project/pagination版本:v1.2源文件下载:英文原版 或中文翻译修改版 一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此方法,因为加载会比较慢. 原插件CSS不太合理,使用浮动,故无法方便实现左右方向的定位,且未清除浮动,在中文修改版中我对其进行了优化,使其支持tex

随机推荐