我有一个足够的数据表。第一行(tr)具有下面每行的平均值。例如:
| Name | Number |
--------------------
| Average | 4.5 |
| Jim | 5.0 |
| Sam | 4.0 |
不应对平均行进行排序,是否有类或属性来阻止对平均值进行排序?
答案 0 :(得分:2)
由于默认排序插件不支持每行设置,因此您需要使用自定义排序器和自定义标记来破解逻辑。
$('table').footable({
sorters : {
alpha : function mysorter ( a, b ) {
if ( ! mysorter.top ) {
mysorter.top = $('table .footable-sorted-desc').length ? 1 : -1;
setTimeout( function(){ mysorter.top = 0; }, 0 );
}
if ( a.indexOf( '\u2063' ) >= 0 ) return mysorter.top;
if ( b.indexOf( '\u2063' ) >= 0 ) return -mysorter.top;
return a > b ? 1 : ( a < b ? -1 : 0 );
}
}
});
<link href="http://fooplugins.com/footable/css/footable.core.min.css" rel="stylesheet"/>
<link href="http://fooplugins.com/footable/css/footable.metro.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://fooplugins.com/footable/js/footable.js"></script>
<script src="http://fooplugins.com/footable/js/footable.sort.js"></script>
<table><thead><tr><th>Name<th data-sort-initial="true">Number</thead><tbody>
<tr><td>Average<td>4.5⁣</tr>
<tr><td>Jim<td>5.0</tr>
<tr><td>Sam<td>4.0</table>
我在这里使用Invisible Separator \u2063
来标记“热门”内容。
使用一些额外的行来最佳地检测排序方向并相应地调整结果(上升时最小,下降时最大)。