jquery tablesorter:确定列的排序顺序
jquery tablesorter : determining sort order for column
http://tablesorter.com 是否可以根据排序是升序还是降序对不同的值进行排序?
我看到了如何使用解析器(即 http://code-cocktail.in/hidden-value-sorting-in-jquery-tablesorter-plugin/ )根据任意数据对单元格的值进行 return 排序,因此在不同情况下 return 使用不同的值似乎很简单足够的。
让我头疼的一点是,我似乎无法在解析时确定排序顺序。看起来我可以在通过以下请求排序时重新解析单元格:
$(".tablesorter").bind("sortStart",function() {
$(".tablesorter").trigger("update");
});
...但是它 看起来 就像在 "sortStart" 点排序的顺序是未知的,所以解析器不能基于那个提供不同的值列的排序顺序。
这可能吗?谢谢:-)
要使以下代码正常工作,您需要使用我的 fork of tablesorter,其中包含 css、与原始版本不兼容的小部件和插件。
这与 this Whosebug question 有点相似,只是它允许使用两个不同的值对一列进行排序(两种答案都可以使用不同的方法很好地工作)。
需要稍作修改,以便在升序排序期间使用一个值,在降序排序期间使用另一个值 (demo):
HTML(一个单元格)
<th class="gamename">
<span class="name">Fun Fun</span>
<span class="perc">96%</span>
</th>
脚本
$(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);
}
}
});
});
http://tablesorter.com 是否可以根据排序是升序还是降序对不同的值进行排序?
我看到了如何使用解析器(即 http://code-cocktail.in/hidden-value-sorting-in-jquery-tablesorter-plugin/ )根据任意数据对单元格的值进行 return 排序,因此在不同情况下 return 使用不同的值似乎很简单足够的。
让我头疼的一点是,我似乎无法在解析时确定排序顺序。看起来我可以在通过以下请求排序时重新解析单元格:
$(".tablesorter").bind("sortStart",function() {
$(".tablesorter").trigger("update");
});
...但是它 看起来 就像在 "sortStart" 点排序的顺序是未知的,所以解析器不能基于那个提供不同的值列的排序顺序。
这可能吗?谢谢:-)
要使以下代码正常工作,您需要使用我的 fork of tablesorter,其中包含 css、与原始版本不兼容的小部件和插件。
这与 this Whosebug question 有点相似,只是它允许使用两个不同的值对一列进行排序(两种答案都可以使用不同的方法很好地工作)。
需要稍作修改,以便在升序排序期间使用一个值,在降序排序期间使用另一个值 (demo):
HTML(一个单元格)
<th class="gamename">
<span class="name">Fun Fun</span>
<span class="perc">96%</span>
</th>
脚本
$(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);
}
}
});
});