更改表的方式是对jquery tablesorter进行排序

我正在使用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(); } 

毋庸置疑,它不起作用,我希望有人之前做过这样的事情,我现在已经停留了一段时间。

所以它不起作用,因为你正在重新表达桌子上的tableorter? 在重新绑定之前,您可以尝试取消绑定tablesorter。

 $('table') .unbind('appendCache applyWidgetId applyWidgets sorton update updateCell') .removeClass('tablesorter') .find('thead th') .unbind('click mousedown') .removeClass('header headerSortDown headerSortUp'); 

看一下从表中删除jQuery tablesorter 。

我认为你正在寻找这个 – 你将需要MetatData插件让这些类喜欢"{sorter: 'digit'}" sorter "{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; });