jQuery 페이지 나누기 플러그인
11222 단어 jquery
/**
* jQuery
*/
+function($){
$.fn.pagination = function(options){
//
var defaults = {
totalCount: 100, //
showPage: 5, //
currentPage: 1, //
perPage: 10, //
callback: function (currentPage, perPage) { //
console.log(currentPage + ':' + perPage);
}
};
$.extend(defaults, options || {});
var totalCount = parseInt(defaults.totalCount),
showPage = parseInt(defaults.showPage),
perPage = parseInt(defaults.perPage),
totalPage = Math.ceil(totalCount / perPage),
currentPage = parseInt(defaults.currentPage),
centerSep = Math.ceil(showPage / 2),
html = '';
// html
showPage = showPage < totalPage ? showPage : totalPage;
html += '<div class="pagination">';
html += '<a class="pagination-prev" href="javascript:;">«</a>';
html += '<a class="pagination-disabled" href="javascript:;">...</a>';
for (var i = 1; i <= showPage; i++) {
html += '<a class="pagination-num" href="javascript:;"></a>';
}
html += '<a class="pagination-disabled" href="javascript:;">...</a>';
html += '<a class="pagination-next" href="javascript:;">»</a></div>';
$(this).html(html);
var $pagination = $(this).find('.pagination'),
$prev = $pagination.find('.pagination-prev'),
$next = $pagination.find('.pagination-next'),
$num = $pagination.find('.pagination-num');
setCurrentPage();
//
$pagination
.delegate('.pagination-num', 'click', function(e) {
currentPage = parseInt($(this).html());
setCurrentPage();
})
.delegate('.pagination-prev', 'click', function(e) {
currentPage--;
setCurrentPage();
})
.delegate('.pagination-next', 'click', function(e) {
currentPage++;
setCurrentPage();
});
//
function setCurrentPage(){
currentPage = currentPage > totalPage ? totalPage : currentPage;
currentPage = currentPage < 1 ? 1 : currentPage;
if(currentPage == 1){
$prev.addClass('pagination-disabled');
}else{
$prev.removeClass('pagination-disabled');
}
if(currentPage == totalPage){
$next.addClass('pagination-disabled');
}else{
$next.removeClass('pagination-disabled');
}
if(currentPage - centerSep <= 0){
$prev.next().addClass('pagination-hidden');
}else{
$prev.next().removeClass('pagination-hidden');
}
if(currentPage + centerSep > totalPage){
$next.prev().addClass('pagination-hidden');
}else{
$next.prev().removeClass('pagination-hidden');
}
$num.removeClass('pagination-active').each(function (index, el) {
if(currentPage - centerSep < 0){
index += 1;
}else if(currentPage + centerSep > totalPage) {
index = totalPage - showPage + index + 1;
}else {
index = currentPage - centerSep + index + 1;
}
if(index == currentPage){
$(el).addClass('pagination-active');
}
$(el).html(index);
});
$.isFunction(defaults.callback) && defaults.callback(currentPage, perPage);
}
}
}(jQuery);
* {
margin: 0;
padding: 0;
}
.pagination {
text-align: center;
}
.pagination a {
display: inline-block;
padding: 5px 15px;
margin-left: -1px;
color: #428bca;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
.pagination a:hover {
color: #2a6496;
background-color: #eee;
border-color: #ddd;
}
.pagination .pagination-disabled,
.pagination .pagination-disabled:hover {
color: #777;
cursor: default;
background-color: #fff;
border-color: #ddd;
}
.pagination .pagination-active,
.pagination .pagination-active:hover {
color: #fff;
cursor: default;
background-color: #428bca;
border-color: #428bca;
}
.pagination .pagination-hidden {
display: none;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.