【发布时间】:2015-02-02 17:22:49
【问题描述】:
我在该列上有一些由 sType: "my-num-html" 定义的自定义排序代码。
我的列数据是这样的:
- AB 332
- 公元前 664 年
- CD 325
- KF 576
默认情况下它是这样排序的:
- CD 325
- AB 332
- KF 576
- 公元前 664 年
它完全忽略了字母...我试图让它不忽略字母。
然后我在“dataTables.naturalSort.js”中进行了扩展
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"my-num-html-pre": function (a) {
console.log("my-num-html pre");
var x = String(a).replace(/<[\s\S]*?>/g, "");
console.log("nh: " + x);
return x;
},
"my-num-html-asc": function (a, b) {
console.log("my-num-html asc");
return naturalSort(a, b); //((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"my-num-html-desc": function (a, b) {
console.log("my-num-html desc");
return naturalSort(a, b) * -1; //((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
问题是它不应该忽略这些字母并且应该打印 asc/desc 函数...预打印我在日志中的列(使用 console.log)。
当页面加载时,即使是“pre”也不会加载。
当您单击列标题时:预加载,但仅此而已,并且顺序不正确。
再次点击时:再次预加载,但顺序仍然不正确。
“asc”和“desc”日志永远不会被打印出来。
EDIT:: AJAX“fnserverdata”正在被使用,只要调用它,订单就会重置回 AJAX 数据。
【问题讨论】:
标签: jquery sorting datatable jquery-datatables