jquery.pager.js分页实现详解

2020-05-23 06:12:13易采站长站整理

for (var page = startPoint; page <= endPoint; page++) {

var currentButton = $('<li class="page-number">' + (page) + '</li>');

page == pagenumber ? currentButton.addClass('pgCurrent') : currentButton.click(function() { buttonClickCallback(this.firstChild.data); });
currentButton.appendTo($pager);
}

// render in the next and last buttons before returning the whole rendered control back.
$pager.append(renderButton('下一页', pagenumber, pagecount, buttonClickCallback)).append(renderButton('尾页', pagenumber, pagecount, buttonClickCallback));

return $pager;
}

// renders and returns a 'specialized' button, ie 'next', 'previous' etc. rather than a page number button
function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) {

var $Button = $('<li class="pgNext">' + buttonLabel + '</li>');

var destPage = 1;

// work out destination page for required button type
switch (buttonLabel) {
case "第一页":
destPage = 1;
break;
case "上一页":
destPage = pagenumber - 1;
break;
case "下一页":
destPage = pagenumber + 1;
break;
case "尾页":
destPage = pagecount;
break;
}

// disable and 'grey' out buttons if not needed.
if (buttonLabel == "第一页" || buttonLabel == "上一页") {
pagenumber <= 1 ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
}
else {
pagenumber >= pagecount ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); });
}

return $Button;
}

// pager defaults. hardly worth bothering with in this case but used as placeholder for expansion in the next version
$.fn.pager.defaults = {
pagenumber: 1,
pagecount: 1
};

})(jQuery);

Pager.css:


#pager ul.pages {
display:block;
border:none;
text-transform:uppercase;
font-size:10px;
margin:10px 0 50px;
padding:0;
}

#pager ul.pages li {
list-style:none;
float:left;
border:1px solid #ccc;
text-decoration:none;
margin:0 5px 0 0;
padding:5px;
}

#pager ul.pages li:hover {
border:1px solid #003f7e;
}

#pager ul.pages li.pgEmpty {
border:1px solid #eee;
color:#eee;
}

#pager ul.pages li.pgCurrent {
border:1px solid #003f7e;
color:#000;
font-weight:700;
background-color:#eee;
}

html代码:


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery.pager.js Test</title>
<link href="Pager.css" rel="stylesheet" type="text/css" />
<script src="jquery-1.2.6.js" type="text/javascript"></script>