如何使jQueryTablesorter在默认情况下对降序排序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我无法弄清楚这一点。这个问题也被问到这里http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-insert--How--to25180761s27240.html#a25180761没有反应。

我试过了

    $.tablesorter.defaults.sortInitialOrder = 'desc';

并将jquery.tablesorter.js文件更改为默认为'desc',但它不起作用。当我点击列标题时,第一个排序仍然是上升的,所以用户必须点击两次以降低值。

我怎样才能得到Tablesorter默认降序排序?

提问于
用户回答回答于

看起来像是表程序代码中的一个bug,或者我误解了sortInitialOrder参数应该做什么。在第536行,它通过查看列已排序的次数并取mod 2的值来设置排序器顺序。它还应该考虑sortInitialOrder的值。

将第536行改为

this.order = this.count++ % 2;

this.order = this.count++ == 0 ? this.order : (1 - this.order);

并在这一行之后添加(这样,对另一列的第一次单击就会给出默认值)

$headers.not($cell).each( function() {
    this.count = 0;
});

并将第421行改为

o.count = s[1];

o.order = o.count = s[1];

以便在应用sortList时重写初始顺序。

然后,可以使用sortInitialOrder参数对tablesorter设置列的默认第一个排序顺序。在sortList中提供的任何排序都将覆盖为整个表提供的sortInitialOrder。

请注意,这适用于Tablesorter2.0。

用户回答回答于

尝试从Tablesorter站点获得最新版本--这似乎是在2.0.3和2.0.5之间的某个地方修复的。

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#theTable").tablesorter({ 
            sortInitialOrder: 'desc',
            sortList: [[3,1]] // etc.

    }); 
    } 
); 
</script>

...这适用于最新版本的Tablesorter,但与我之前的版本不同.。希望能帮上忙!

扫码关注云+社区