用jquery编写的分页插件
用jquery编写的分页插件

源码
function _pager_go(total_page) {
var page_str = $("#_pager_textbox").val();
var int_expr = /^(\+|-)?\d+$/;
if (!int_expr.test(page_str)) {
alert("请输入整数");
return;
}
var go_page = parseInt(page_str);
if (go_page < 1 || go_page > total_page) {
alert("跳转页数超出范围");
return;
}
var link_fn_name = $("#_pager_link_fn_name").val();
eval(link_fn_name + "(" + go_page + ")");
}
$.fn.ss_pager = function (options) {
var box = $(this);
var current_page = options.current_page;
var total_page = options.total_page;
var link_class_name = options.link_class || "pageitem";
var text_class_name = options.text_class || "";
var link_fn_name = options.link_fn || "void";
var show_pages = options.show_pages || 10;
var total_size = options.total_size;
var btn_class_name = options.btn_class || "btn";
if (current_page <= 1) {
current_page = 1;
}
if (total_size <= 0) {
$(box).html("<span style='color:red;'>没有记录</span>");
return;
}
function __wprint(iscurrent, index, text) {
if (!iscurrent) {
return "<a class='" + link_class_name + "' href='javascript:" + link_fn_name + "(" + index + ")" + "'>" + text + "</a>";
}
else {
return "<a class='" + text_class_name + "'>" + text + "</a>";
}
}
var html_buf = '';
if (total_size) {
html_buf += __wprint(true, "", "共有" + total_size + "条记录");
}
html_buf += __wprint(current_page - 1 <= 0, current_page - 1, "上一页");
if (total_page > 1) {
//开始页码
var start = 2;
var end = total_page - 1;
var _t = parseInt(show_pages / 2) - 1;
html_buf += __wprint(current_page == 1, 1, 1);
if (current_page - _t > 1) {
html_buf += __wprint(true, "", "...");
start = current_page - _t;
}
for (var i = start; i < current_page; i++) {
html_buf += __wprint(current_page == i, i, i);
//console.log("前 "+i);
};
if (current_page > 1 && current_page < total_page) {
html_buf += __wprint(true, current_page, current_page);
}
if (current_page + _t < total_page - 1) {
end = current_page + _t;
//console.log("后 e "+ (current_page+_t));
//console.log("后 e "+ (total_page-1));
}
for (var i = current_page + 1; i <= end; i++) {
html_buf += __wprint(current_page == i, i, i);
//console.log("后 "+i);
};
if (current_page + _t < total_page - 1) {
html_buf += __wprint(true, "", "...");
};
html_buf += __wprint(current_page == total_page, total_page, total_page);
}
else {
html_buf += __wprint(current_page == 1, 1, 1);
}
html_buf += __wprint(current_page + 1 > total_page, current_page + 1, "下一页");
html_buf += ("<a class='" + text_class_name + "'> <input type='text' id='_pager_textbox' value='" + current_page + "' />");
html_buf += ("<input type='hidden' value='" + link_fn_name + "' id='_pager_link_fn_name' />");
html_buf += ("<input type='button' class='btn' value='转到' id='_pager_button' onclick='_pager_go(" + total_page + ")' /> </a>");
$(box).html(html_buf);
};
用jquery编写的分页插件的更多相关文章
- 用jquery编写的tab插件
用jquery编写的tab插件 源码 $.fn.ss_tab = function (options) { var box = $(this); var btns = $(this).find(&qu ...
- 源码来袭!!!基于jquery的ajax分页插件(demo+源码)
前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客 ...
- jQuery Pagination Ajax分页插件中文详解(摘)
jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...
- 浅谈jQuery Pagination Ajax 分页插件的使用
插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...
- Jquery.Page.js 分页插件的使用
1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" ...
- [转]jQuery Pagination Ajax分页插件中文详解
在做项目时需要用到在前端页面中需要实现分页显示的功能,类似于博客园下面的分页导航.从网上找了几个,觉得下面这个使用起来非常简单,也很方便.特在这里记录一下. 以下为文章原文. 中文项目地址:http: ...
- jQuery Pagination Ajax分页插件中文详解(转)
一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...
- JQuery编写自己的插件(七)
一:jQuery插件的编写基础1.插件的种类编写插件的目的是给一系列已经方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率.常见的种类有以下三种:封装对象方法的插件
- JQuery.Page.js分页插件的使用
1.简单直接贴代码 需要引用以下样式和脚本 <link href="~/Scripts/Page/pager.css" rel="stylesheet" ...
随机推荐
- Geometry Stage in Rendering pipeline (读书笔记2 --- Real-Time rendering)
Geometry Stage一般包含下面几个阶段 1. Model & View Transform(模型和视图变换) --- 模型空间--> 世界空间 模型变换:每个模型经过模型变换来 ...
- XML文件中CDATA的作用
操作XML文件时,如果允许用户输入内容,例如∶"< ".">"."/".""等,当生成XML时,会破坏了XM ...
- requirejs的使用
requirejs的优点: 1.防止在js的加载过程中,阻止页面的渲染: 2.可以引入多个js文件: 3.可以写出重复使用的js模块: 4.有效的防止命名的冲突,通过将变量分装在模块中的方式实现: r ...
- iOS图片编辑功能实现
图片加标签:标签可以编辑 https://github.com/shumingli/waterMark 1. 编辑效果;图片可以放到.缩小.旋转 2. 保存相册效果
- {POJ}{3925}{Minimal Ratio Tree}{最小生成树}
题意:给定完全无向图,求其中m个子节点,要求Sum(edge)/Sum(node)最小. 思路:由于N很小,枚举所有可能的子节点可能情况,然后求MST,memset()在POJ G++里面需要cstr ...
- web初学之MVC
之前对JavaEE的MVC模式有些许了解,但一直没有很好的掌握,在读代码时候也很模糊不清.因此对MVC又通过各种资料有了全面的理解. 一.首先,需要从了解JavaEE技术开始.JavaEE技术在设计程 ...
- ArcGIS Engine 刷新问题
link: http://www.cnblogs.com/Jingkunliu/archive/2013/01/10/2854710.html PartialRefresh方法是部分刷新,效率方面比单 ...
- PadLeft 和 PadRight
1 PadLeft 即:向已知字符串左边补充字符,使整个字符串到达指定长度 CREATE FUNCTION PadLeft ( ),/*原始字符*/ @TotalLength int,/*总长度*/ ...
- 如何使用Javascript判断浏览器终端设备
WEB开发中如何通过Javascript来判断终端为PC.IOS(iphone).Android呢? 可以通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端 var ...
- spring-mybatis jar下载地址
http://central.maven.org/maven2/org/mybatis/mybatis-spring/1.3.0/