jquery分页插件

jquery.mypagination.js 文件:

/* *

*

* jquery分页插件

* 1.0  zheng 2014-03-18

* 1.1  兼容url包含#号地址,GoToPage可以指定锚点(特殊需求)2014-04-10 09:00:34

* 1.2  可以配置分页条列出页面数

* 1.3  增加了页面码跳转功能

*  $(‘#mypage‘).scPagination(555, {

*              pageSize: 10,//每页显示的记录条数

*           myPagerCount:10,//分页条显示的页面个数

*              callback: function (page) {

*                  alert("选择了页码"+page);

*              }

*          });

*/

$.fn.scPagination = function (totalProperty, opts) {

opts = $.extend({

pageSize: 10,

myPagerCount:10,

callback: function () {

}

}, opts || {});

return this.each(function () {

function numPages() {

return Math.ceil(totalProperty / opts.pageSize);

}

function selectPage(page) {

return function () {

currPage = page;

if (page < 1) currPage = 1;

if (page >= numPages()) currPage = numPages();

render();

opts.callback(currPage);

}

}

function render() {

var html = ‘<div class="Page">‘

+ ‘<div>[共<span class="Total">‘ + totalProperty + ‘</span>条]</div>‘

+ ‘<a id="page-first" href="javascript:void(0);">首页</a>‘

+ ‘<a id="page-prev" href="javascript:void(0);">上页</a>‘;

var fistPage=1;

var lastPage=numPages();

if(currPage>Math.ceil((opts.myPagerCount-1)/2))

{

fistPage=currPage-Math.ceil((opts.myPagerCount-1)/2);

}

if(fistPage>numPages()-opts.myPagerCount+1)

{

fistPage=numPages()-opts.myPagerCount+1;

}

if(fistPage<1)fistPage=1;

lastPage=opts.myPagerCount+fistPage-1;

if(lastPage>numPages())lastPage=numPages();

for (i = fistPage; i <= lastPage; i++) {

//if (currPage + i <= numPages() && currPage + i > 0) {

html += ‘<a href="javascript:void(0);" class="NumPage">‘ + i + ‘</a>‘;

// }

}

html += ‘<a id="page-next" href="javascript:void(0);">下页</a>‘

+ ‘<a  id="page-last" href="javascript:void(0);">尾页</a>‘

+ ‘<input id="txtGoTo" class="page-num"/><a id="btnGoTo" href="javascript:void(0);">GO</a>‘

+ ‘</div>‘;

if (currPage > 0) {

}

if (currPage < numPages()) {

}

panel.empty();

panel.append(html);

$(‘#page-first‘, panel)

.bind(‘click‘, selectPage(1));

$(‘#page-prev‘, panel)

.bind(‘click‘, selectPage(currPage - 1));

$(‘#page-next‘, panel)

.bind(‘click‘, selectPage(currPage + 1));

$(‘#page-last‘, panel)

.bind(‘click‘, selectPage(numPages()));

$(‘.NumPage‘).each(function () {

$(this).bind(‘click‘, selectPage(parseInt($(this).text())));

if (parseInt($(this).text()) == (currPage)) {

$(this).attr(‘class‘, ‘Selected‘);

}

});

$(‘input.page-num‘, panel)

.val(currPage)

.change(function () {

selectPage($(this).val())();

});

$(‘#btnGoTo‘,panel)

.bind(‘click‘,

function()

{

var goPage=parseInt($(‘#txtGoTo‘).val());

selectPage(goPage)();

}

);

if (request("pageIndex") != "") {

$(‘.Selected‘).each(function () {

$(this).attr(‘class‘, ‘NumPage‘);

});

$(‘.NumPage‘).each(function () {

if (parseInt($(this).text()) == parseInt(request("pageIndex"))) {

$(this).attr(‘class‘, ‘Selected‘);

}

});

}

}

var currPage = 1;

if (request("pageIndex") != "") {

currPage = parseInt(request("pageIndex"));

}

var panel = $(this);

render();

function request(paras) {

var url = location.href;

var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");

var paraObj = {}

for (i = 0; j = paraString[i]; i++) {

paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);

}

var returnValue = paraObj[paras.toLowerCase()];

if (typeof (returnValue) == "undefined") {

return "";

} else {

return returnValue;

}

}

});

}

//获取url参数 request("ID")

function request(paras) {

var url = location.href;

var splitChar = /[&#]/;//设置分隔字符

var paraString = url.substring(url.indexOf(‘?‘) + 1, url.length).split(splitChar);

var paraObj = {}

for (i = 0; j = paraString[i]; i++) {

paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);

}

var returnValue = paraObj[paras.toLowerCase()];

if (typeof (returnValue) == "undefined") {

return "";

} else {

return returnValue;

}

}

function GoToPage(page, anchor) {

var oUrl = this.location.href.toString();

if (anchor && oUrl.indexOf("#" + anchor) > 0) {

oUrl=oUrl.replace("#" + anchor, "");

}

var re = eval(‘/(pageIndex=)([^&|#]*)/gi‘);

var nUrl = oUrl.replace(re, ‘pageIndex=‘ + page);

if (request("pageIndex") == "") {

if (oUrl.indexOf("?") <= 0) {

nUrl = nUrl + "?pageIndex=" + page;

}

else {

nUrl = nUrl + "&pageIndex=" + page;

}

}

if (anchor && oUrl.indexOf("#" + anchor) < 0) {//链接到锚点

anchor = anchor.replace(‘#‘, ‘‘);

nUrl = nUrl + "#" + anchor;

}

this.location = nUrl;

}

function replaceParamVal(paramName, replaceWith) {

var oUrl = this.location.href.toString();

var re = eval(‘/(‘ + paramName + ‘=)([^&|#]*)/gi‘);

var nUrl = oUrl.replace(re, paramName + ‘=‘ + replaceWith);

this.location = nUrl;

}

/***用到的样式 为了方便直接写在了此处**/

document.write(" <style type=\"text/css\">");

document.write("/*分页开始*/");

document.write(".Page");

document.write("{");

document.write(" height: 26px;");

document.write("}");

document.write(" .Page div");

document.write(" {");

document.write(" display: inline-block;");

document.write(" zoom: 1;");

document.write(" font-size: 14px;");

document.write(" }");

document.write(" .Page .Total");

document.write(" {");

document.write(" color: #cc0000;");

document.write(" }");

document.write(" .Page a");

document.write(" {");

document.write(" padding: 4px 5px;");

document.write(" height: 14px;");

document.write(" line-height: 14px;");

document.write(" font-size: 14px;");

document.write(" border: 1px solid #d5d5d5;");

document.write(" margin: 0px 5px;");

document.write(" display: inline-block;");

document.write(" }");

document.write(" .Page a:hover");

document.write(" {");

document.write(" text-decoration: underline;");

document.write(" border-color: #cc0000;");

document.write(" }");

document.write(" .Page .Selected");

document.write(" {");

document.write(" background: #cc0000;");

document.write(" border-color: #cc0000;");

document.write(" color: #ffffff;");

document.write(" display: inline-block;");

document.write(" zoom: 1;");

document.write(" }");

document.write(" .Page input");

document.write(" {");

document.write(" width:40px;");

document.write(" overflow-x:visible;");

document.write(" padding: 4px 5px;");

document.write(" height: 14px;");

document.write(" line-height: 14px;");

document.write(" font-size: 14px;");

document.write(" border: 1px solid #d5d5d5;");

document.write(" margin: -3px 0px 0px 5px;");

document.write(" display: inline-block;");

document.write(" }");

document.write("/*分页结束*/");

document.write(" </style>");

test.html 测试文件:

<head>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript" src="jquery.mypagination.js"></script>

</head>

<div id="mypage" class="Pagination" style="margin-bottom: 0px;"></div>

<script>

$(document).ready(function(){

$(‘#mypage‘).scPagination(555,{

pageSize:20,

myPagerCount:10,

callback:function(page){

alert(page);

}

});

});

</script>

时间: 2024-12-28 00:14:44

jquery分页插件的相关文章

Jquery 分页插件 Jquery Pagination

Jquery 分页插件 Jquery Pagination 分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也挺简单明了的,也助于自己写个小插件. 不过我比较懒,一般直接拿着各种插件用,想偷懒的同学们也可以用用看: Jquery Pagination 大家可以去这里查看下演示:http://www.xuetub.com/plugin/jquery/221 使用方法也比较简单: <div id="pag

[JQuery]分页插件PageList

虽然已经有了[JQuery]分页插件jQuery pager plugin功能扩展,可惜蛋疼的UI不一样,只能重做一个,唉 基本上与pager类似,只不过跳转方式有所变化,以下是具体的js,其中defaultSettings为相关参数设定,其中要注意的是renderPerCall,这个参数如果设为false,将不执行html重绘 $.fn.pageList = function (arg, methodName) { if (typeof methodName === "string"

JQuery分页插件封装(源码来自百度,自己封装)

最近由于项目的需要,做了一个基于JQuery的表格分页插件封装,部分源码来源百度,经由自己封装完成. 下面是具体代码和说明,仅供参考.第一步可以先将我的HTML,CSS,JS这三部分的代码创建好后先运行看看,下图是文件目录展示. html <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <

简单实用的jQuery分页插件

在做商城和订单管理的时候,常常会用到分页功能,所以我封装了一个jQuery的分页插件,该插件主要实现上下翻页,输入数字跳转等功能. 具体实现如下: 输入参数需要当前页码pageNo,总页码totalPage,回调函数callback. 主要的实现有两个函数,一个是根据当前页和总页数生成相应的html的代码,一个是事件绑定及回调函数的执行. creatHtml函数: creatHtml:function(){ var me=this; var content=""; //当前页码 var

分享一个Jquery 分页插件 Jquery Pagination

分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也挺简单明了的,也助于自己写个小插件. 不过我比较懒,一般直接拿着各种插件用,想偷懒的同学们也可以用用看: Jquery Pagination 大家可以去这里查看下演示:http://www.xuetub.com/plugin/jquery/221 使用方法也比较简单: <div id="page2" class="m-paginat

jQuery 分页插件(jQuery.pagination.js)ajax 实现分页

首先需要引入jQuery 再次需要引入 <script src="jquery/jquery.pagination.js"></script> 同时也要引入 <link rel="stylesheet" href="css/pagination.css"> 引入之后,分页基本样子 下面看分页配置参数 var defaults = { totalData: 0, //数据总条数 showData: 0, //每页

jquery分页插件精选

1.最新的分页控件:Mricode.Pagination(推荐) https://github.com/mricle/Mricode.Pagination 2.Jquery Pagination Plugin:(此版本以后不再更新) http://mricle.com/JqueryPagination 使用例子: http://www.jq22.com/yanshi2977 http://www.jq22.com/jquery-info2977

自定义Jquery分页插件

(function ($) { 'use strict'; $.jPager = function (option) { var defaultOption = { pages: [{ id: '', showSelectPage: true }], currentpage: 1, //当前页 pagesize: 20, //一页显示数量 total:1, //条数 totalpage: 1 //总页码 }; var pageObj = $.extend(defaultOption, optio

JQuery分页插件bs_pagination的应用

一.引入bs_pagination的js文件以及样式文件(项目中需要引用Jquery和bootstrap的相关js和样式文件,且在以下引用之前): <link href="~/Scripts/bs_paginationJS/jquery.bs_pagination.min.css" rel="stylesheet" /> <script src="~/Scripts/bs_paginationJS/jquery.bs_pagination