用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编写的分页插件的更多相关文章

  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. R12将银行和分行都使用TCA管理

    R12将银行和分行都使用TCA管理,后台保存在HZ_PARTIES . 银行帐号:如果是付款或者是收款(本公司的帐号,内部帐号),都保存在ce_bank_accounts,ce_bank_acct_u ...

  2. Modified Least Square Method and Ransan Method to Fit Circle from Data

    In OpenCv, it only provide the function fitEllipse to fit Ellipse, but doesn't provide function to f ...

  3. 43、哈工大NLP自然语言处理,LTP4j的测试+还是测试

    1.首先需要构建自然语言处理的LTP的框架 (1)需要下载LTP的源码包即c++程序(https://github.com/HIT-SCIR/ltp)下载完解压缩之后的文件为ltp-master (2 ...

  4. python基础知识---操作文件

    一.打开文件  open()函数 open函数返回一个文件对象. 用法:open('文件名','模式') 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内 ...

  5. 使用python的redis 实现消息的pub/sub功能

    直接上代码: 首先需要明确的是,客户端向服务端去发送消息,服务端只需要订阅是哪些各频道即可,然后客户端向这些个频道发送消息 在客户端的代码: #!/usr/bin/env python #coding ...

  6. 获取B表数据添加到A表中作为一个下拉列表元素存在

    1.ProductController类里toedit方法内添加: ProductModel product = ProductModel.dao.findById(id); //通过id查找服务类 ...

  7. gfw列表

    https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

  8. {POJ}{3897}{Maze Stretching}{二分答案+BFS}

    题意:给定迷宫,可以更改高度比,问如何使最短路等于输入数据. 思路:由于是单调的,可以用二分答案,然后BFS验证.这里用优先队列,每次压入也要进行检查(dis大小)防止数据过多,A*也可以.好久不写图 ...

  9. Net分布式系统之四:RabbitMQ消息队列应用

    消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是通过消息队列传输系统日志.目前 ...

  10. 因为此版本的应用程序不支持其项目类型(.csproj)”之解

    有的时候vs无缘无故的出现如下错误:"因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本" 解决办法:如果是这个提示,可能是由于你安装m ...