Wow that’s a mouthful!
The cookie widget for the awesome jQuery tablesorter pager extension wouldn’t go back to page 1 for me. I debugged it endlessly until I finally figured it out - the zero page confused it. I hacked a fix that works for me and sent it to the author:
Nice plugin. When I use it w/ pager, move to first page breaks due to wacky numbering. This fix works for me:
if ( pageNum >= 1 ) {
tablesorterCookieJar.set($(table).attr('id')+'-page', pageNum);
} else if ( pageNum == 0 ) {
} else {
var pageNum = tablesorterCookieJar.get($(table).attr('id')+'-page');
if (pageNum && pageNum > 1) {
table.config.page = pageNum;
jQuery(table).trigger('sorton',[0,0]);
}
}
Woops, actually that doesn’t work, but I think this does:
var pageNum = table.config.page;
var totalRows = table.config.totalRows;
if ( totalRows > 0 ) {
tablesorterCookieJar.set($(table).attr('id')+'-page', pageNum);
} else {
table.config.totalRows = 1;
var pageNum = tablesorterCookieJar.get($(table).attr('id')+'-page');
if (pageNum && pageNum > 1) {
table.config.page = pageNum;
jQuery(table).trigger('sorton',[0,0]);
}
}
I’m using totalRows as an initialization marker of sorts.
HA! Actually that change does nothing. Turns out I was just avoiding calling the update from the cookie - which is what was preventing the page from getting reset to 0. Instead, I’ve removed that part:
var pageNum = table.config.page;
if ( pageNum > 0 ) {
tablesorterCookieJar.set($(table).attr('id')+'-page', pageNum);
}
and instead using this to initialize the tablesorter:
var tablesorterCookieJar = $.cookieJar('tablesorter', {
cookie: {
path: '/'
}
});
var mypage = tablesorterCookieJar.get('table-page');
$("#table").tablesorter(
{
widthFixed: true
widgets:['zebra','cookie']
}
).tablesorterPager(
{
container: $("#table-pager"),
positionFixed: false,
size: 20,
page: mypage
}
);
