用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. PHP中类自动加载的方式

    最近在学习composer,发现从接触PHP到现在已经遇到了三种关于PHP中类的自动加载方式,这其中包括PHP自带的类的自动加载方式.PHP的第三方的依赖管理工具composer的加载方式以及PHP的 ...

  2. PE新手教程

    先确定你的手机是 IPhone 还是 Android  Android 的在你的应用商店搜索  我的世界 下载 0.14.2 版本 , 也可以在群文件中下载 安装 然后点击 下载  等待下载..  下 ...

  3. R&Rstudio安装各种包

    安装rCharts的方法 install.packages('devtools') library(devtools) require(devtools) install_github('ramnat ...

  4. ubuntu软件推荐

    本文推荐的ubuntu工具均为笔者亲用.原则:在精不在多. 0.万能类 笔者崇尚[极简主义],常用的工具如果有网页版的就尽量不用单独的client.如网页版微信. 1.系统类 截图:Deepin-sc ...

  5. ---bind 配置

    http://blog.csdn.net/zjunjun/article/details/7419125

  6. kettle定时任务_第三方合作方有订单自动发送邮件通知_20161214

    由于和第三方合作,需要知道第三方合作方有了订单后通知对方,如果每天查看数据太麻烦了,因此想到了用Kettle定时任务,先判断系统里有没有订单,如果有就执行查询调取订单数据并发送邮件作业,如果没有则不执 ...

  7. mysql ERROR 1062: ALTER TABLE causes auto_increment resequen

    当我用Navicat尝试修改已有记录的mysql数据表的主键为自动增长时,报出以下错误 1602 ALTER TABLE causes auto_increment resequencing, res ...

  8. Elasticsearch相关资源

    安装介绍 http://www.doc88.com/p-171165797348.html 入门教程 http://www.iteye.com/blogs/subjects/elasticsearch ...

  9. windbg学习---!thread和.thread

    !thread扩展显示目标系统中线程包括ETHREAD块在内的摘要信息.该命令只能在内核模式调试下使用 !thread [-p] [-t] [Address [Flags]] -p 显示拥有该线程的进 ...

  10. javascript [object,Object]

    今天给html标签的属性赋值为对象时,发现取出来的值为 [object,Object],感觉有点奇怪. 代码如下: <!DOCTYPE html> <html> <hea ...