modify Table Sorter v2.1

2009年 5月 24日

ヤフーオークションは、決済に関する利益も大きいのか管理側も表示側も使い勝手が日増しに良くなっているが、一つ問題を挙げるとするとテーブルの項目、例えば「現在価格」をクリックして並び順を変えると最初に小さい数字が上から並ぶようなことが、全ての項目について「昇順」となることだ。これは利用者の状況にもよるが、中には「降順」を最初の命令にした方が良い場合がある。

そこで進行中の計画物を調べてみたところ、Table Sorter ライブラリを使っているアプリケーションの中に同様の問題を見つけたので、tablesort.js の最後の関数を次のように修正した。

// Numeric sorting.
// Compare two dictionary structures and indicate which is larger.
TableSort.compare_num = function(a, b) {
 var aNum = parseFloat(a[0]);
 if (isNaN(aNum)) {
  aNum = -Number.MAX_VALUE;
 }
var bNum = parseFloat(b[0]);
 if (isNaN(bNum)) {
  bNum = -Number.MAX_VALUE;
 }
 if (aNum == bNum) {
  return 0;
 }
 return (aNum > bNum) ? -1 : 1;
}

1と-1を入れ替えるだけなので、ヤフーもぜひ検討してほしいと思ったのだが、オークションのアプリケーションは同期通信で引数を渡して返してもらうという伝統的な造りになっていた…。