我看到另一个有同样问题的人(jquery tablesorter ajax table 只排序一个方向),但这不是同一个原因。
我使用 jQuery Tablesorter 的一个分支(https://github.com/Mottie/tablesorter)通过自定义解析器(法国日期/时间)使用数据属性对列进行排序:
<td data-since="28-09-2012 15:41:10">
<strong>4 jours, 16 minutes</strong> (28-09-2012 15:41:10)
</td>
我可以成功地对列进行升序排序,但是当我尝试再次单击列标题时,插件不会降序排序。
具有基本数据格式的其他列在两个方向上都正确排序。
这是基于文档和其他 stackoverflow 帖子的自定义解析器:
$(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)
- 第二排序,排序没有变化:
在 3,0 和 dir 0 时间(7ms)上排序
重建表(3ms)
完成应用小部件 (0ms)