即使在 columndefs 中指定 orderable false 时,jquery 数据表也会对列进行排序

San*_*mas 6 jquery datatables

我面临着 JQUERY Datatable 插件的一个奇怪问题。我在每一行中都使用了一个评级功能。第一个单元格实际上拥有用于该目的的控制权。

这是第一个单元格的标记

<input class="row-check" type="checkbox"><span class="fa-stack fa-lg star-rating">
<i class="fa fa-star goldstar  fa-stack-2x"></i>
<strong class="fa-stack-1x inside-text">4</strong> </span>
Run Code Online (Sandbox Code Playgroud)

这是我使用的数据表初始化代码

    var myTable = $("#tbl_main").dataTable({
    "dom": "<'tableinfobar'i><'tablesearchbox'f><'tablestarfilter'><'tablestarreset'><'tablebody't>S<'tablelength'l><'tablepaging'p>",
    "ordering": true,
    "columnDefs": [{ "targets": [0, 6], "searchable": false, "orderable": false }, 
{ "targets": [ 1, 3, 4, 5,  7, 8, 9], "orderable": false }, 
{ "targets": [2], "type": "html-num", "orderable": true}],
    "lengthMenu": [
        [10, 20, 50, 100, 500, -1],
        [10, 20, 50, 100, 500, "All"]
    ],
    "language": {
        "search": "Quick Search _INPUT_",
        "zeroRecords": "No assessments found with that search criteria.",
        "info": "Showing _START_ to _END_ of _TOTAL_ Assessments",
        "infoFiltered": " - filtered from _MAX_ entries",
        "lengthMenu": "Show _MENU_ Entries"
    }
}).show();
Run Code Online (Sandbox Code Playgroud)

正如您在代码中看到的,我禁用了对 columndefs 中第一列的排序。但如果第一个单元格内的某些值仍然具有强标记 (在本例中<strong class="fa-stack-1x inside-text">4</strong>),则整个表格将根据该值进行降序排序。意味着如果第一个单元格中的强标签内没有任何其他行的评级值,则具有某些值的行将显示为整个表中的最后一行。

我在这里做错了什么。

Gyr*_*com 4

使用order选项指定要排序的替代列。默认情况下,即使您禁用该列的排序,它也会使用第一列。