我对大多数数据使用tablesorter。它运行良好,但我使用tablesorterPager插件获得了一个奇怪的行为。
当创建表并调用tablesorter时,寻呼机显示正确的信息,我可以浏览不同的页面。
但是,当我使用排序功能时(在使用分拣机:-)时很有用),寻呼机告诉我只有一个页面,而且我无法看到其他页面。
这是我使用的JS代码。我与官方文档以及我在网络上发现的几乎所有内容进行了比较,但我无法真正看到可以解释这种行为的差异。
$("#tlisting").tablesorter({
headers: {
2: {sorter: 'nom'},
3: {sorter: 'date'},
0: {sorter: false},
6: {sorter: false},
7: {sorter: false}
}, debug: true
}).tablesorterPager({container: $("#pager")});
var sorting = [[3, 1]];
if ($("#tlisting tbody tr.ni_tr").length > 0) {
$("#tlisting").trigger("sorton", [sorting]);
}
$("#tlisting").trigger("update").trigger("appendCache").trigger("applyWidgets");
这是调试输出:
Building cache for 20 rows:,1ms
Evaling expression:var sortWrapper = function(a,b) {var e0 = (a[2] == b[2] ? 0 : (a[2] === null ? Number.POSITIVE_INFINITY : (b[2] === null ? Number.NEGATIVE_INFINITY : (a[2] < b[2]) ? -1 : 1 )));if(e0) { return e0; } else { return a[8]-b[8];}; return 0; }; ,0ms
Sorting on 2,0 and dir 0 time:,1ms
Rebuilt table:,2ms
提前感谢您的任何线索。
答案 0 :(得分:0)
我猜你正在使用原始的tablesorter(http://tablesorter.com)。请勿在{{1}}之后触发appendCache
,尤其是使用寻呼机插件。
update
方法将所有表行添加回表中。因此,例如,如果要向表中添加一行或多行,并且已初始化寻呼机,则执行以下操作:
appendCache
我建议您查看我的fork of tablesorter(不要忘记更新寻呼机)。您不应该对初始化代码进行任何更改。如果您需要在表格中添加一行或多行,则可以使用addRows
method:
$('table')
.trigger('appendCache')
.append( $myNewRows )
.trigger('update')
.trigger('sorton', [sorting]);