teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

本体の修正を追記ですにゃ

2017/02/21 02:34

投稿

nyancat
nyancat

スコア132

answer CHANGED
@@ -3,11 +3,32 @@
3
3
  プラグインのファイルを書き換えるのではなく、
4
4
  オプションで設定すればいいみたいですよ:
5
5
 
6
- ```JS
6
+ ```JavaScript
7
7
  $("table").tablesorter({
8
8
  //最初の列を昇順でソート、3番目の列を降順でソートする
9
9
  sortList: [[0,0],[2,1]]
10
10
  });
11
11
  ```
12
12
 
13
- [テーブルの列数(最初が0), ASCなら0でDESCなら1]
13
+ [テーブルの列数(最初が0), ASCなら0でDESCなら1]
14
+
15
+ ーーー本体の修正ーーー
16
+
17
+ [tablesorter.js 707行](https://github.com/christianbach/tablesorter/blob/master/jquery.tablesorter.js#L707)に変数`beforeClickHeader`を追加
18
+ ```JavaScript
19
+ sortOrder, beforeClickHeader;
20
+ ```
21
+
22
+ [tablesorter.js 741行](https://github.com/christianbach/tablesorter/blob/master/jquery.tablesorter.js#L741)の下に追加
23
+ ```JavaScript
24
+ if(beforeClickHeader && beforeClickHeader.innerHTML !== this.innerHTML ) {
25
+ beforeClickHeader.count = formatSortingOrder(config.sortInitialOrder);
26
+ }
27
+ beforeClickHeader = this;
28
+ ```
29
+ ここののcountのインクリメントと剰余でorderのtoggleをしているんですにゃ。
30
+ 保存先のthisはthなので、前にクリックされたものかどうか判別してcountを操作すればリセットできますにゃ。
31
+ これは仮にinnerHTMLで判別してますが、中が空っぽならidとかclassNameみたいな属性を使うといいですにゃ。
32
+
33
+ 本体がバージョンアップされたらこのソースをその都度いれないとですから、
34
+ 作者にリクエストを飛ばしてオプションで制御できるようにしてもらうといいと思いますにゃあ。