Anyone else done this? I think where I am having trouble is capturing and setting the current page. Here's what I've modified so far that isn't working quite right yet:
$(document).ready(function() { $('table.paginated').each(function() { var currentPage = 0; var $table = $(this); $table.bind('repaginate', function() { console.log(currentPage); $table.find('tbody tr').show() .lt(currentPage * numPerPage) .hide() .end() .gt((currentPage + 1) * numPerPage - 1) .hide() .end(); }); var numRows = $table.find('tbody tr').length; var numPages = Math.ceil(numRows / numPerPage); var pageText24 = ''; var pageText48 = ''; var $pager = $('<div class="pager"></div>'); for (var page = 0; page < numPages; page++) { if (page == 0 && numPages >= 2) { $('<span class="page-number"> < </span>') .bind('click', {'newPage': $pager.find('span.active').text()}, function(event) { currentPage = event.data['newPage']; $table.trigger('repaginate'); $pager.find('span.active').prev().addClass('active'); $pager.find('span.active:last').removeClass('active'); }) .appendTo($pager).addClass('clickable'); } $('<span class="page-number">' + (page + 1) + '</span>') .bind('click', {'newPage': page}, function(event) { currentPage = event.data['newPage']; $table.trigger('repaginate'); $(this).addClass('active').siblings().removeClass('active'); }) .appendTo($pager).addClass('clickable'); if (page == numPages-1 && numPages >= 3) { $('<span class="page-number"> > </span>') .bind('click', {'newPage': $pager.find('span.active').next().text()}, function(event) { currentPage = event.data['newPage']; $table.trigger('repaginate'); $pager.find('span.active').next().addClass('active'); $pager.find('span.active:first').removeClass('active'); }) .appendTo($pager).addClass('clickable'); } $pager.find('span.page-number:first').next().addClass('active'); $pager.insertBefore($table); $table.trigger('repaginate'); } }); });