Skip to content

Instantly share code, notes, and snippets.

@dasginganinja
Created July 2, 2014 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dasginganinja/6f315950a24a1cefc361 to your computer and use it in GitHub Desktop.
Save dasginganinja/6f315950a24a1cefc361 to your computer and use it in GitHub Desktop.
I didn't like the pager on a website so I created this.
if ($('.chooser').length == 0) {
var pagearr = [];
var $pageSel = $('<select class="chooser">').hide();
var pageMax = parseInt($('.pager').data('pages'));
var pageCur = parseInt($('.pager').data('currentpage'));
for(i=0;i<pageMax;++i) {
if (i < 5 || i >= (pageMax-5) || (i+1)%10 == 0 || ((i > pageCur-5) && (i < pageCur + 5))) {
pagearr.push({ val: i+1, text: (i+1)+" / "+pageMax });
}
}
$(pagearr).each(function() {
$opt = $('<option>').attr('value', this.val).text(this.text);
if (this.val == pageCur) {
$opt.attr('selected','selected');
}
$pageSel.append($opt);
});
$pageSel.change();
$pageSel.change(function() {
var perpage = parseInt($('.pager').data('itemsperpage'));
var base = $('.pager').data('pagerquerybase');
var suffix = $('.pager').data('pagerquerysuffix');
var curpage = parseInt($(this).val());
var offset = (curpage - 1) * perpage;
//console.log(offset);
window.location = base + offset + suffix;
});
$pageSel.focusout(function() {
$('.chooser').hide();
$('.pager .current').show();
});
$pageSel.insertAfter($('.pager .current'));
$('.pager .current').click(function() {
$('.pager .current').hide();
$('.chooser').show();
$('.chooser').focus();
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment