Skip to content

Instantly share code, notes, and snippets.

@RafaPegorari
Created September 16, 2015 16:44
Show Gist options
  • Save RafaPegorari/9d870d534a37bbe68e43 to your computer and use it in GitHub Desktop.
Save RafaPegorari/9d870d534a37bbe68e43 to your computer and use it in GitHub Desktop.
Dynamic pagination.
/*
var data = {
now: //Current page.
pTot: //Total pages.
objCreate: //ul where it will be created pagination. exemple, .nav, #nav...
}
*/
var _dsPagination = function (data) {
var pNow = data.now,
pTot = data.total,
objCreate = data.objCreate,
start = ((pNow - 2) < 1) ? 1 : pNow - 2,
end,
dsb_hBack = '',
dsb_hNext = '';
if ((start + 4) <= pTot) {
end = start + 4;
} else if ((start + 3) <= pTot) {
end = start + 3;
start = ((pNow - 3) < 1) ? 1 : pNow - 3;
} else {
end = pTot;
start = ((pNow - 4) < 1) ? 1 : pNow - 4;
}
if (pNow === 1) {
dsb_hBack = 'disabled';
}
if (pNow === pTot) {
dsb_hNext = 'disabled';
}
var hStart = '<li><a href="javascript:;" data-page="1">1...</a></li>',
hEnd = '<li><a href="javascript:;" data-page="' + pTot + '">...' + pTot + '</a></li>',
hBack = '<li class="' + dsb_hBack + '"><a href="javascript:;" data-page="' + (pNow - 1) + '"><span aria-hidden="true">&laquo;</span></a></li>',
hNext = '<li class="' + dsb_hNext + '"><a href="javascript:;" data-page="' + (pNow + 1) + '"><span aria-hidden="true">&raquo;</span></a></li>',
hCtt = '',
hNav = '',
ih;
for (var i = start; i <= end; i++) {
var act = '';
if (i === pNow) {
act = 'active';
}
hCtt += '<li class="' + act + '"><a href="javascript:;" data-page="' + i + '">' + i + '</a></li>';
}
if (end <= (pTot - 1)) {
hCtt += hEnd;
}
if (start >= 2) {
hCtt = hStart + hCtt;
}
hNav = hBack + hCtt + hNext;
ih = $(objCreate + " [name='" + _dsEmtName.pagination + "']").html(hNav);
$(ih).find('li').click(function () {
if ($(this).hasClass('active') || $(this).hasClass('disabled')) {
return false;
} else {
//call function ajax
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment