同じ問題 ( jquery tablesorter ajax table only sorting one direction )を抱えている他の人を見ましたが、それは同じ原因ではありません。
jQuery Tablesorter ( https://github.com/Mottie/tablesorter ) のフォークを使用して、 data-attribute を使用してカスタム パーサー (フランス語の日付/時刻) を介して列を並べ替えます。
<td data-since="28-09-2012 15:41:10">
<strong>4 jours, 16 minutes</strong> (28-09-2012 15:41:10)
</td>
列を昇順でソートすることはできますが、列ヘッダーをもう一度クリックしようとすると、プラグインが降順でソートされません。
基本データ形式の他の列は、両方向で正しくソートされます。
ドキュメントおよびその他のスタックオーバーフローの投稿に基づくカスタムパーサーは次のとおりです。
$(document).ready(function() {
//https://stackoverflow.com/questions/9550354/jquery-tablesorter-plugin-secondary-hidden-sorting
$.tablesorter.addParser({
// set a unique id
id: 'parseSinceColumn',
is: function(s) {
return /\d{1,2}-\d{1,2}-\d{1,4} \d{1,2}:\d{1,2}:\d{1,2}/.test(s);
},
format: function(s, table, cell, cellIndex) {
// get data attributes from $(cell).attr('data-something');
var cellDate = $(cell).attr('data-since');
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.split(" ");
return new Date(s[2], s[1]-1, s[0], s[3], s[4], s[5]).getTime();
},
// set type, either numeric or text
type: 'numeric'
});
$("#pr-table").tablesorter({
headers : {
3 : { sorter: 'parseSinceColumn' }
}
});
});
それを修正する方法について何か考えはありますか?
どうもありがとう。
編集 :
プラグインは本当にソートしようとしていると思いますが、結果は同じです。
プラグインのデバッグは次のとおりです。
- 最初の並べ替え、成功:
3,1およびdirで1回ソート(8ms)
テーブルの再構築 (3ms)
ウィジェットの適用完了 (0ms)
- 2 番目の並べ替え、並べ替えに変更なし:
3,0 および dir 0 時間 (7ms) での並べ替え
テーブルの再構築 (3ms)
ウィジェットの適用完了 (0ms)