【问题标题】:How can I prevent ordering by click on column names in datatables?如何通过单击数据表中的列名来防止排序?
【发布时间】:2020-11-02 23:44:55
【问题描述】:

我想防止通过单击列名来更改顺序。

我试过了:

"ordering": false,

这实际上消除了点击的可能性。但是订购不再起作用。我想保留它,只阻止用户点击列名。我尝试了以下所有方法:

$(".sorting").addClass('sorting_disabled').removeClass('sorting');

$(".sorting").click(function(){return false;});

  $( ".sorting" ).click(function( event ) {
  event.preventDefault();
});

没有任何效果。

【问题讨论】:

    标签: jquery sorting datatables click preventdefault


    【解决方案1】:

    您可以使用以下内容:

    $(document).ready(function() {
    
        var table = $('#example').DataTable( {
            "initComplete": function(settings, json) {
                $('th.sorting').off();
                $("th.sorting").css('cursor', 'default');
                $("th.sorting_asc").css('cursor', 'default');
                $("th.sorting_desc").css('cursor', 'default');
            }
        } );
    
        // to show sorting is still possible:
        table.order.listener( '#mysorter', 0 );
    
    } );
    

    这会从表格的列标题中删除排序事件(jQuery off() 函数),并确保鼠标图标在您滚动标题时不会变为手形。

    它将箭头留在原处,因此您可以看到有效的排序。

    为了显示排序仍然是可能的,我在页面上添加了一个按钮:

    <button id="mysorter" type="button">Click Me!</button>
    

    table.order.listener() 使列索引 0 在每次单击按钮时按 asc/desc 排序。

    (如果您还想去掉排序箭头,请参阅here。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-30
      • 1970-01-01
      • 2014-09-25
      • 2012-11-06
      • 2017-02-18
      • 2016-02-12
      • 2017-02-24
      • 2021-06-25
      相关资源
      最近更新 更多