デフォルトでjQuery Tablesorterを降順にソートする方法は?
-
06-07-2019 - |
質問
これを理解できません。この質問はここでも http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 応答なし。
試しました
$.tablesorter.defaults.sortInitialOrder = 'desc';
jquery.tablesorter.jsファイルをデフォルトの「desc」に変更しますが、機能しません。列ヘッダーをクリックしても、最初の並べ替えはまだ昇順であるため、ユーザーは値を下げるために2回クリックする必要があります。
Tablesorterをデフォルトで降順でソートするにはどうすればよいですか?
解決
tablesorterコードのバグのように見えます。または、sortInitialOrderパラメーターが何をすべきかを誤解しています。 536行目では、列がソートされた回数を調べて値mod 2を取得することにより、ソーターの順序を設定します。sortInitialOrderの値も考慮する必要があります。
から536行目を変更
this.order = this.count++ % 2;
to
this.order = this.count++ == 0 ? this.order : (1 - this.order);
この行の後に追加します(別の列を最初にクリックするとデフォルトが表示されます)
$headers.not($cell).each( function() {
this.count = 0;
});
および421行目を変更
o.count = s[1];
to
o.order = o.count = s[1];
sortListが適用された場合に最初の順序が上書きされるようにします。
その後、tablesorterのsortInitialOrderパラメーターを使用して、列のデフォルトの最初のソート順を設定できます。 sortListで提供される順序は、テーブル全体に提供されるsortInitialOrderをオーバーライドします。
これはTablesorter 2.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の最新バージョンでは機能しましたが、以前のバージョンでは機能しませんでした。役に立てば幸いです!
これを使用するだけで、配列の2番目の項目はソート順です(0 =昇順、1 =降順):
.tablesorter({ sortList: [[0, 1]] });