datatables 1.10和自定义排序功能

use*_*659 7 javascript jquery datatables

我需要按工作日(星期一,星期二,星期五,星期四,星期五,星期五,星期日)对列进行排序,似乎无法使其正常工作.请注意,我使用的是最新的1.10版本的数据表.

它与其他扩展一起位于其自己的文件中,并在加载jquery.dataTables.js之后调用,但在表初始化之前调用.

/* custom sorting by weekday */
$.extend( $.fn.dataTableExt.oSort, {
    "weekday-pre": function ( a ) {
        return $.inArray( a, ["SUN","MON","TUE","WED","THU","FRI","SAT"] );
    },
    "weekday-asc": function ( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "weekday-desc": function ( a, b ) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
} );
Run Code Online (Sandbox Code Playgroud)

然后在我的表初始化中,我指定了这个特定列的排序.值可以/将仅来自数据库的"SUN","MON","TUE","WED","THU","FRI","SAT".

"columns": [
        ..... some column entries,
    {
        "data": "day",
        "type": "weekday"
    },
        ..... the rest of the column entries
Run Code Online (Sandbox Code Playgroud)

控制台中没有错误,但是,当我通过单击列标题进行排序时,排序只会默认为常规的字母排序.

mai*_*guy 5

得到了这个与dataTables 1.10.0-beta.2一起使用:

$(function() {
  $('#datatable').DataTable({
    "oLanguage": {
      "sSearch": "Filter Data"
    },
    "iDisplayLength": -1,
    "sPaginationType": "full_numbers",
    "aoColumns": [{
      "sType": "weekday"
    },null]
  });
});
Run Code Online (Sandbox Code Playgroud)

请注意,我刚刚在aoColumns中定义了一个类型.实际的排序仍由您的代码完成.

看看这个Plunk并告诉我这是不是你想要的.(测试Chrome cuz FF对于dataTables和Plunker来说有点挑剔)