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); } } }); });