我想问一下,每次点击一个新列时,是否有办法让表格分类器按升序排序?
谢谢!
答案 0 :(得分:2)
如果您希望列只按其初始排序方向排序,请在jquery.tablesorter.js中查找并注释掉该行:
this.order = this.count++ % 2;
这是更新列的行,以便在下次单击标题时以相反方向排序。对此进行注释意味着排序顺序始终相同。但这也意味着你无法向相反的方向排序。
我有一种情况(可能与你描述的相同)我想让每一列在我第一次点击时按照初始排序方向进行排序,但仍希望能够在我再次点击时对另一个方向进行排序。例如。单击列A将对ASC进行排序,然后再次单击将对DESC进行排序,然后再次对ASC进行排序。单击B将对ASC进行排序,然后再次单击A将对ASC进行排序。使用原始的tablesorter代码,最后一次排序将是DESC,因为前一次单击的A列是ASC。
以下是我解决这个问题的方法。它可能是笨拙和笨拙的,但它对我有用。
在buildHeaders函数中,找到以下行:
this.order = formatSortingOrder( checkHeaderOrder(table, index) );
并在其后添加:
this.initialOrder = formatSortingOrder( checkHeaderOrder(table, index) );
替换我之前提到的那条线:
this.order = this.count++ % 2;
有了这个:
if($lastColumn == i){
this.order = ++this.count % 2;
}else{
this.order = this.initialOrder;
}
$lastColumn = i;
现在,比较A列的sortInitialOrder是ASC而B是DESC。将发生以下情况:
答案 1 :(得分:1)
这是一个tablesorter的分支,你可以传递一个lockedOrder参数:http://mottie.github.io/tablesorter/docs/example-options-headers-locked.html