用jquery编写的分页插件

源码

  1. function _pager_go(total_page) {
  2. var page_str = $("#_pager_textbox").val();
  3. var int_expr = /^(\+|-)?\d+$/;
  4. if (!int_expr.test(page_str)) {
  5. alert("请输入整数");
  6. return;
  7. }
  8.  
  9. var go_page = parseInt(page_str);
  10. if (go_page < 1 || go_page > total_page) {
  11. alert("跳转页数超出范围");
  12. return;
  13. }
  14. var link_fn_name = $("#_pager_link_fn_name").val();
  15. eval(link_fn_name + "(" + go_page + ")");
  16. }
  17.  
  18. $.fn.ss_pager = function (options) {
  19. var box = $(this);
  20. var current_page = options.current_page;
  21. var total_page = options.total_page;
  22. var link_class_name = options.link_class || "pageitem";
  23. var text_class_name = options.text_class || "";
  24. var link_fn_name = options.link_fn || "void";
  25. var show_pages = options.show_pages || 10;
  26. var total_size = options.total_size;
  27. var btn_class_name = options.btn_class || "btn";
  28.  
  29. if (current_page <= 1) {
  30. current_page = 1;
  31. }
  32.  
  33. if (total_size <= 0) {
  34. $(box).html("<span style='color:red;'>没有记录</span>");
  35. return;
  36. }
  37.  
  38. function __wprint(iscurrent, index, text) {
  39. if (!iscurrent) {
  40. return "<a class='" + link_class_name + "' href='javascript:" + link_fn_name + "(" + index + ")" + "'>" + text + "</a>";
  41. }
  42. else {
  43. return "<a class='" + text_class_name + "'>" + text + "</a>";
  44. }
  45. }
  46.  
  47. var html_buf = '';
  48. if (total_size) {
  49. html_buf += __wprint(true, "", "共有" + total_size + "条记录");
  50. }
  51.  
  52. html_buf += __wprint(current_page - 1 <= 0, current_page - 1, "上一页");
  53. if (total_page > 1) {
  54. //开始页码
  55. var start = 2;
  56. var end = total_page - 1;
  57. var _t = parseInt(show_pages / 2) - 1;
  58.  
  59. html_buf += __wprint(current_page == 1, 1, 1);
  60. if (current_page - _t > 1) {
  61. html_buf += __wprint(true, "", "...");
  62. start = current_page - _t;
  63. }
  64.  
  65. for (var i = start; i < current_page; i++) {
  66. html_buf += __wprint(current_page == i, i, i);
  67. //console.log("前 "+i);
  68. };
  69.  
  70. if (current_page > 1 && current_page < total_page) {
  71. html_buf += __wprint(true, current_page, current_page);
  72. }
  73.  
  74. if (current_page + _t < total_page - 1) {
  75. end = current_page + _t;
  76. //console.log("后 e "+ (current_page+_t));
  77. //console.log("后 e "+ (total_page-1));
  78. }
  79.  
  80. for (var i = current_page + 1; i <= end; i++) {
  81. html_buf += __wprint(current_page == i, i, i);
  82. //console.log("后 "+i);
  83. };
  84.  
  85. if (current_page + _t < total_page - 1) {
  86. html_buf += __wprint(true, "", "...");
  87. };
  88. html_buf += __wprint(current_page == total_page, total_page, total_page);
  89. }
  90. else {
  91. html_buf += __wprint(current_page == 1, 1, 1);
  92. }
  93.  
  94. html_buf += __wprint(current_page + 1 > total_page, current_page + 1, "下一页");
  95.  
  96. html_buf += ("<a class='" + text_class_name + "'> <input type='text' id='_pager_textbox' value='" + current_page + "' />");
  97. html_buf += ("<input type='hidden' value='" + link_fn_name + "' id='_pager_link_fn_name' />");
  98. html_buf += ("<input type='button' class='btn' value='转到' id='_pager_button' onclick='_pager_go(" + total_page + ")' /> </a>");
  99.  
  100. $(box).html(html_buf);
  101. };

用jquery编写的分页插件的更多相关文章

  1. 用jquery编写的tab插件

    用jquery编写的tab插件 源码 $.fn.ss_tab = function (options) { var box = $(this); var btns = $(this).find(&qu ...

  2. 源码来袭!!!基于jquery的ajax分页插件(demo+源码)

    前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客 ...

  3. jQuery Pagination Ajax分页插件中文详解(摘)

    jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...

  4. 浅谈jQuery Pagination Ajax 分页插件的使用

    插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...

  5. Jquery.Page.js 分页插件的使用

    1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" ...

  6. [转]jQuery Pagination Ajax分页插件中文详解

    在做项目时需要用到在前端页面中需要实现分页显示的功能,类似于博客园下面的分页导航.从网上找了几个,觉得下面这个使用起来非常简单,也很方便.特在这里记录一下. 以下为文章原文. 中文项目地址:http: ...

  7. jQuery Pagination Ajax分页插件中文详解(转)

    一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...

  8. JQuery编写自己的插件(七)

    一:jQuery插件的编写基础1.插件的种类编写插件的目的是给一系列已经方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率.常见的种类有以下三种:封装对象方法的插件

  9. JQuery.Page.js分页插件的使用

    1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" ...

随机推荐

  1. Lua学习笔记(一)-----C#和lua的交互

    一直以来对Lua热更新技术很感兴趣,在上周开始了对Lua的学习,主要学的是uLua. 直接上干货 准备工作: LuaInterface包括两个核心库一个是LuaInterface.dll,一个是Lua ...

  2. RX(Reactive Extinsion)和IX(Interactive Extinsion)库改名了

    RX和IX库是我经常用到的库,今天写一个小程序的时候想用IX库的时候,发现却找不到了.在它的源码的网站上找了一下,发现它们被改名了,具体的变化为为: 对于RX库: Rx-Main -> Syst ...

  3. select 一直返回0

    select设置超时时间后一直返回零,是因为每次select后监听的fd_set都被重置,解决方法就是每次重新设置

  4. Managing IIS Log File Storage

    Managing IIS Log File Storage   You can manage the amount of server disk space that Internet Informa ...

  5. iOS MVC, MVVM

    在iOS app里,如果用传统的MVC模式,Model层就是数据,View层就是Storyboard,nib文件或者构建UI的代码,Controller层就是ViewController,负责协调Mo ...

  6. 使用C#的反射机制读取类的字段名称及值

    using System.Windows.Forms;using System.Reflection; foreach (FieldInfo fi in typeof(SystemInformatio ...

  7. Winform API "user32.dll"中的函数

    命名空间:System.Runtime.InteropServices /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在G ...

  8. android SurfaceView中播放视频 按视频的原始比例播放

    OnPreparedListener mediaPlayerOnPreparedListener = new OnPreparedListener() { @Override public void ...

  9. macbook 重装win7

    若是第一次已经成功好了,并且把第一次的安装U盘WININSTALL内容保存完好的前提下, win7要重新安装. 先进入Boot Camp移除Windows,备份好你的WIN系统的重要文件. 把第一次的 ...

  10. '++' needs l-value

    碰到这样一段代码:char c[]= "abc";while(*c){printf("%c",*c);c++;} 错误定位到   c++ ; 这一行,提示: ' ...