jquery tablesorter:确定列的排序顺序

http://tablesorter.com是否可以根据排序是升序还是降序对不同的值进行排序?

我看到如何使用解析器基于任意数据返回单元格的排序值(即: http : //code-cocktail.in/hidden-value-sorting-in-jquery-tablesorter-plugin/ ),因此返回不同的值在不同的情况下似乎很简单。

我正在敲打的是我在解析时似乎无法确定排序顺序。 看起来我可以通过以下方式在请求排序时重新解析单元格:

$(".tablesorter").bind("sortStart",function() { $(".tablesorter").trigger("update"); }); 

…但是,在“sortStart”点看起来排序的顺序是未知的,因此解析器无法根据该列的排序顺序提供不同的值。

这可能吗 ? 谢谢 :-)

要使以下代码起作用,您需要使用我的fork of tableorter ,它具有与原始版本不兼容的css,小部件和插件。


这有点类似于这个Stackoverflow问题,除了它允许使用两个不同的值对一列进行排序(两个答案使用不同的方法很好地工作)。

在升序排序期间使用一个值需要进行微小修改,在降序排序( 演示 )期间使用另一个值:

HTML(一个单元格)

  Fun Fun 96%  

脚本

 $(function () { $('#games').tablesorter({ theme: 'blue', textExtraction: { 0: function (node, table, cellIndex) { var $n = $(node); // add semi-colon between values return $n.find('.name').text() + ';' + $n.find('.perc').text(); } }, textSorter: function (a, b, direction, columnIndex, table) { if (columnIndex === 0) { var c = table.config, x = a.split(';'), y = b.split(';'), // sort column by percentage when descending sort is active i = c.$headers.eq(0).hasClass('tablesorter-headerDesc') ? 1 : 0; return $.tablesorter.sortNatural($.trim(x[i]), $.trim(y[i])); } else { return $.tablesorter.sortNatural(a,b); } } }); });