こちらのサイト(https://neil.fraser.name/software/tablesort/)のソート機能で、
初回ソートが昇順になっているのを初回ソート降順にしたいのですがどのように変更すれば良いでしょうか。
何度かソースを確認して見ましたがわからず……
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
解決案
TableSort.click = ...
の部分を下記のように書き換えればOKかと思いますがいかがでしょうか?
具体的には下記の2行のreverse
に!
をつけて反転させています。
if (reverse) {
var i = reverse ? (cellDictionary.length - 1 - y) : y;
Javascript
1TableSort.click = function(t, column, mode) { 2 var table = TableSort.tables_[t]; 3 if (!mode.match(/^[_a-z0-9]+$/)) { 4 alert('Illegal sorting mode type.'); 5 return; 6 } 7 var compareFunction = TableSort['compare_' + mode]; 8 if (typeof compareFunction != 'function') { 9 alert('Unknown sorting mode: ' + mode); 10 return; 11 } 12 // Determine and record the direction. 13 var reverse = false; 14 if (Math.abs(TableSort.lastSort_[t]) == column + 1) { 15 reverse = TableSort.lastSort_[t] > 0; 16 TableSort.lastSort_[t] *= -1; 17 } else { 18 TableSort.lastSort_[t] = column + 1; 19 } 20 // Display the correct arrows on every header/footer cell. 21 var spanMatchAll = new RegExp('\bTableSort_' + t + '_\d+\b'); 22 var spanMatchExact = new RegExp('\bTableSort_' + t + '_' + column + '\b'); 23 var spans = table.getElementsByTagName('SPAN'); 24 for (var s = 0, span; span = spans[s]; s++) { 25 if (span.className && spanMatchAll.test(span.className)) { 26 if (spanMatchExact.test(span.className)) { 27 if (!reverse) { 28 span.innerHTML = TableSort.arrowDown; 29 } else { 30 span.innerHTML = TableSort.arrowUp; 31 } 32 } else { 33 span.innerHTML = TableSort.arrowNone; 34 } 35 } 36 } 37 // Fetch the table's data and store it in a dictionary (assoc array). 38 if (!table.tBodies.length) { 39 return; // No data in table. 40 } 41 var tablebody = table.tBodies[0]; 42 var cellDictionary = []; 43 for (var y = 0, row; row = tablebody.rows[y]; y++) { 44 var cell; 45 if (row.cells.length) { 46 cell = row.cells[column]; 47 } else { // Dodge Safari 1.0.3 bug 48 cell = row.childNodes[column]; 49 } 50 cellDictionary[y] = [TableSort.dom2txt_(cell), row]; 51 } 52 // Sort the dictionary. 53 cellDictionary.sort(compareFunction); 54 // Rebuild the table with the new order. 55 for (y = 0; y < cellDictionary.length; y++) { 56 var i = !reverse ? (cellDictionary.length - 1 - y) : y; 57 tablebody.appendChild(cellDictionary[i][1]); 58 } 59};
不明な点がお伝え下さい。
ご確認をよろしくおねがいします!
投稿2021/03/18 16:31
総合スコア170
0
TableSort.lastSort_[0] = -1;
にしたらできませんか?
投稿2021/03/12 14:20
総合スコア65
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 10:35