用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" ...
随机推荐
- 关于移动端常用的盒模型与flex布局
在移动端选择布局的方式中常用盒模型display:-webkit-box达到自适应,然而display:-webkit-flex也同样能达到效果,因自在己移动端用-webkit-box比felx方式熟 ...
- ZYNQ 的PS GEM DMA存在缺陷
使用iperf对zynq进行单socket tcp传输速率测试: 无网络损伤时,单向网络带宽约为600Mbps,双向网络带宽相加约400Mbps: 50ms延时,1ms抖动,无丢包时,单向网络带宽约为 ...
- [转]逻辑斯蒂回归 via python
# -*- coding:UTF-8 -*-import numpydef loadDataSet(): return dataMat,labelMat def sigmoid(inX): retur ...
- javascript获取当前时间
function getCurrentDate(){ var myDate = new Date(); var month = myDate.getMonth()+1; var day = myDat ...
- asp.net core实现SHA1withRSA
public sealed class SHA1withRSA { /// <summary> /// pem SHA1withRSA签名 /// </summary> /// ...
- Datatable 列查询,统计值
Column 列查询,如下: var dt = CommonUtil.ToDataTable(dataJson); //判断是否有当前日期数据 var systemDateTime = new Com ...
- XidianOJ 1195 Industry of Orz Pandas
--正文 贪心 排序好慢慢找就好 #include <iostream> #include <cstring> #include <cstdio> #include ...
- {Latex}{Tabular}文本超出表格自动换行
用p或者m可以控制每列的宽度(需载入array宏包). 要整个表格相对于页面居中,用chngpage宏包的adjustwidth,如下: \documentclass[oneside]{article ...
- int数组转string数组和int数组转string中间用逗号隔开
//int 数组转string数组 ,,,}; string result=test.Select(i => i.ToString()).ToArray(); //int 数组转 string中 ...
- linux Makefile obj-m obj-y
目标定义是Kbuild Makefile的主要部分,也是核心部分.主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作. 最简单的Kbuild makefile 只包含一行: 例子: ...