Ho uno script impaginazione per una tabella che genera numeri di pagina in base a quanti elementi sono all'interno del problema table.The è che mostra tutte le pagine, per esempio se ci sono 50 pagine sarebbe riempire la pagina con 50 tasti ma vorrei vogliono mostrare solo i primi 3-4 pulsanti poi ... e dopo che il pulsante ultima pagina. Ho cercato di modificarlo, ma io non sono sicuro di quello che sto facendo male perché non è realmente facendo nulla
$.fn.pageMe = function(opts) {
var $this = this, defaults = {
perPage : 7,
showPrevNext : false,
hidePageNumbers : false
}, settings = $.extend(defaults, opts);
var listElement = $this;
var perPage = settings.perPage;
var children = listElement.children();
var pager = $('.pager');
if (typeof settings.childSelector != undefined) {
children = listElement.find(settings.childSelector);
}
if (typeof settings.pagerSelector != undefined) {
pager = $(settings.pagerSelector);
}
var numItems = children.length;
var numPages = Math.ceil(numItems / perPage);
pager.data(curr, 0);
if (settings.showPrevNext) {
$('<li class=page-item><a href=# class=prev_link>«</a></li>')
.appendTo(pager);
}
var curr = 0;
while (numPages > curr && (settings.hidePageNumbers === false)) {
$(
'<li class=page-item><a href=# class=page-link>'
+ (curr + 1) + '</a></li>').appendTo(pager);
curr++;
}
if (settings.showPrevNext) {
$('<li class=page-item><a href=# class=next_link>»</a></li>')
.appendTo(pager);
}
pager.find('.page-link:first').addClass('active');
pager.find('.prev_link').hide();
if (numPages <= 1) {
pager.find('.next_link').hide();
}
pager.children().eq(1).addClass(active);
children.hide();
children.slice(0, perPage).show();
pager.find('li .page-link').click(function() {
var clickedPage = $(this).html().valueOf() - 1;
goTo(clickedPage, perPage);
return false;
});
pager.find('li .prev_link').click(function() {
previous();
return false;
});
pager.find('li .next_link').click(function() {
next();
return false;
});
function previous() {
var goToPage = parseInt(pager.data(curr)) - 1;
goTo(goToPage);
}
function next() {
goToPage = parseInt(pager.data(curr)) + 1;
goTo(goToPage);
}
function goTo(page) {
var startAt = page * perPage, endOn = startAt + perPage;
children.css('display', 'none').slice(startAt, endOn).show();
if (page >= 1) {
pager.find('.prev_link').show();
} else {
pager.find('.prev_link').hide();
}
if (page < (numPages - 1)) {
pager.find('.next_link').show();
} else {
pager.find('.next_link').hide();
}
pager.data(curr, page);
pager.children().removeClass(active);
pager.children().eq(page + 1).addClass(active);
}
};