2009-10-23 2 views
16

私はこれを理解できません。この質問はここでもhttp://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761と返答されませんでした。jQuery Tablesorterをデフォルトで降順にソートするにはどうすればいいですか?

私は

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

を試してみたとjquery.tablesorter.jsファイルを変更することは「DESC」をデフォルトとするが、それは動作しません。列ヘッダーをクリックすると、最初のソートがまだ昇順になっているため、ユーザーは値を下げるために2回クリックする必要があります。

デフォルトで降順で並べ替えるようにするにはどうすればよいですか?

答えて

15

tablesorterコードのバグのように見えるか、sortInitialOrderパラメータの処理内容が誤解されています。行536では、列がソートされた回数を調べ、値mod 2をとることによってソート順を設定します。ソート順は、sortInitialOrderの値も考慮に入れる必要があります。

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

から

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

に変更ライン536と(別の列の最初のクリックはあなたにデフォルトを与えるように)この行の後に追加

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

ライン421を

から
o.count = s[1]; 

sortlistがあり適用される場合、最初の順序が上書きされるよう

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

します。

次に、列のデフォルトの最初のソート順を設定するために、tablesInfoにsortInitialOrderパラメータを使用できます。 sortListで指定された順序は、表全体で指定されたsortInitialOrderをオーバーライドします。

これはTablesorter 2.0に適用されることに注意してください。

+0

はい、動作します。本当にありがとう! –

+0

優秀 - サイト上のいくつかの管理ツールでこれを行う必要があります:) –

+0

あなたはマスターtvanfossonです! – Aaron

7

は単純にこれを使用、配列の2番目の項目はソート順序(0 =上昇、1 =降順)である:

.tablesorter({ sortList: [[0, 1]] }); 
+0

just working =) – Anubis

21

tablesorterサイトから最新バージョンをお試しください - これは、バージョン2.0の間のどこかに固定しているようです.3および2.0.5。

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

    }); 
    } 
); 
</script> 

...最新のバージョンのtablesorterで動作していましたが、私が以前持っていたものではありませんでした。それが役に立てば幸い!

関連する問題