文字列を含む列で TableSorter を使用しています。
$.tablesorter.addParser(
{
id: 'positions',
is: function(s) {
return false;
},
format: function(s) {
var abbr=s.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos);
return abbr;
},
type: 'numeric'
}
);
format 関数は、グローバル _sortpos 変数に依存する値を返す必要があります。この値は動的に変化します。この線:
var abbr=s.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos);
すべての非数字および非文字を取り除き、特定の数の最初の文字を削除します。意図は、_sortpos-th 文字でソートすることです。
パーサーがテーブル ソーターに追加されたときに、各文字列に対して format 関数が 1 回だけ解析されるようです。ただし、私の目的では、ソートするたびに format 関数を再実行する必要があります。
これまでのところ、ソートするたびにパーサーを追加しようとしました。しかし、それはうまくいきませんでした。また、初期化を再実行してテーブルソーターを再初期化しようとしました
$(".tablesorter").tablesorter(
{
sortReset: true,
headers: {
1: {
sorter: 'positions'
}
}
}
);
しかし、役に立たない。
どうすればよいですか?また、グローバルパラメータをこっそり入れるために使用できるコンパレータ関数はありますか? 次に、パーサーで文字列をフォーマットし、コンパレーターで動的に slice() 関数で _sortpos を使用できます。