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');
         }
  });
});

Reply via email to