Created
September 16, 2015 16:44
-
-
Save RafaPegorari/9d870d534a37bbe68e43 to your computer and use it in GitHub Desktop.
Dynamic pagination.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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">«</span></a></li>', | |
hNext = '<li class="' + dsb_hNext + '"><a href="javascript:;" data-page="' + (pNow + 1) + '"><span aria-hidden="true">»</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