我正在使用jquery tablesorter来排序我的表。我试图谷歌我的问题,没有找到我在找什么。
我有一个表格内容会动态变化,所以我想改变项目的排序方式。
一个案例我已经填充了文本表,可以使用默认.tablesorter()
进行分类,我还有另一种情况,表中有数字,所以我需要像这样调用tablesorter:
$('table').tablesorter({
headers : {
0 : {sorter:'digit'},
1 : {sorter:'digit'},
2 : {sorter:'digit'},
3 : {sorter:'digit'}
}
});
我有一个方法可以重新加载到表内容中的数字/文本之间的表切换,如何更改表的排序方式。
在示例中(伪代码):
function reloadTableData
if table contains numbers user this tablesorter (I have a way to know if table contains numbers)
$('table').tablesorter({
headers : {
0 : {sorter:'digit'},
1 : {sorter:'digit'},
2 : {sorter:'digit'},
3 : {sorter:'digit'}
}
});
if table contains text use ordinary table sorter
$('table').tablesorter();
end
我可以使用文本/数字重新加载表数据n次。
我尝试了以下内容:
function initTablesorter(n) {
switch(n)
{
case "number":
digitTableSorter();
break;
case "text":
defaultTableSorter();
break;
default:
}
}
function digitTableSorter(){
$('table').tablesorter({
headers : {
0 : {sorter:'digit'},
1 : {sorter:'digit'},
2 : {sorter:'digit'},
3 : {sorter:'digit'}
}
});
}
function defaultTableSorter(){
$('table').tablesorter();
}
毋庸置疑,它不起作用,我希望之前有人这样做过,我现在已经停留了一段时间。
答案 0 :(得分:1)
所以它不起作用,因为你正在重新表达桌子上的tableorter?在重新绑定之前,您可以尝试取消绑定tablesorter。
$('table')
.unbind('appendCache applyWidgetId applyWidgets sorton update updateCell')
.removeClass('tablesorter')
.find('thead th')
.unbind('click mousedown')
.removeClass('header headerSortDown headerSortUp');
答案 1 :(得分:0)
我认为你正在寻找这个 - 你需要MetatData plugin让这些课程更像"{sorter: 'digit'}"
http://tablesorter.com/docs/example-trigger-sort.html
$("#trigger-link").click(function() {
// set sorting column and direction, this will sort on the first and third column the column index starts at zero
var sorting = [[0,0],[2,0]];
// sort on the first column
$("table").trigger("sorton",[sorting]);
// return false to stop default link action
return false;
});