用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. 常见寻找OEP脱壳的方法

    方法一: 1.用OD载入,不分析代码! 2.单步向下跟踪F8,是向下跳的让它实现 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——运行到所选) 4.绿色线条表 ...

  2. js 中数字问题

    在js中请注意数字是没有长度的, 不能使用for循环遍历数字的长度 操作时通过.toString()把数字转换成字符串后通过字符串的.length 属性得到长度

  3. qsort库函数的用法

    qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *, ...

  4. html尖角提示框的实现

    <style type="text/css">        .box {            background-color: #bebf22;          ...

  5. JAVA EE中session的理解

    转自[互动百科]http://www.baike.com/wiki/Session   Session Session:在计算机中,尤其是在网络应用中,称为“会话”.Session直接翻译成中文比较困 ...

  6. Web前端框架汇总

    在做web开发的时候难免遇到一个问题,那就是,选择什么样的框架.下面把前端的框架简单的列一下. 1.flex Apache基金会今天发布了Flex 4.8版本,这是Adobe将Flex捐献给Apach ...

  7. frp内网穿透配置

    frps配置 --------------------------------------------------------------------------------------------- ...

  8. jQuery实现瀑布流

    瀑布流布局多用于加载图片,或者图片配上文字.视觉表现为参差不齐的多栏布局.随着页面滚动条向下滚动,还会不断加载数据块并附加至当前尾部.本文就来利用jQuery实现一个图片瀑布流的效果. 1.布局. 首 ...

  9. remote debug in visual studio

    install "rtools setup x64"[remote debugging monitor] on the target machine, lauch it when ...

  10. mysql使用小技巧

    1.mySql 删除表中大批量的数据 假设有一个表(logs)有2000万条记录,我们要在业 务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM ...