【问题标题】:Highlight selected row in DataTable using keyTable extension使用 keyTable 扩展突出显示 DataTable 中的选定行
【发布时间】:2016-02-14 01:57:18
【问题描述】:

我有一个表格,我希望用户使用向上/向下箭头键导航,这部分是使用 Datables 的 keyTable 扩展来完成的。

我还希望突出显示包含焦点单元格的表格行。我已经尝试过这段代码,它应该将 selected 类添加到应该反过来突出显示它的行中,但它没有。

table
    .on( 'key-focus', function ( e, datatable, cell ) {
        var row = datatable.row( cell.index().row );
        $( row.node() ).addClass( "selected" );
    } );

拨弄:https://jsfiddle.net/hqxq7dk1/

【问题讨论】:

标签: jquery twitter-bootstrap datatables datatables-1.10


【解决方案1】:

对于 Bootstrap 表,类不是 selected,而是您可能想要 active。 (虽然我猜任何contextual class 都可以。)

我正在使用 DataTables v1.10.10,我也需要突出显示选定的行。我相信我已经提取了相关代码:

    $('#MY_TABLE tbody').on('click', 'tr', function () {
            table.$('tr.active').removeClass('active');
            $(this).addClass('active');
    }

Above 为点击一行设置了一个事件监听器。 active 类将从任何已激活的行中删除并添加到接收到点击事件的行中。

编辑我忘了考虑到您提到要使用键盘导航而不是鼠标单击来突出显示该行。所以我的回答不是 100% 正确,尽管我认为它会解决你提出的问题。如果您无法适应以上需求,请告诉我,我会给出更具体的回复。

编辑 2

请参阅this modification 你原来的小提琴。它适用于 Bootstrap 上下文类。这一次,我使用的是.info

我所做的修改:

  1. 将资源移至资源面板。 (我这样做只是因为网站建议这样做,而且我没有识别出显示的表格具有 Bootstrap 样式,所以我认为链接资源可能有错误。没有。)
  2. 我编辑了原始标记以使用 Bootstrap 类。

        <table id="example" class="table table-striped table-bordered table-condensed" width="100%">
    
  3. 如前所述,我使用了 Bootstrap info 类并添加了一个 JavaScript 行,以便在将其添加到当前行之前从先前选择的行中删除该类:

        table.$('tr.info').removeClass('info');
        $( row.node() ).addClass( "info" );`
    

第二点是让它发挥作用的关键——也就是说,始终使用 Bootstrap CSS 规则。 (那并从先前的活动行中删除该类。)我意识到这个答案会导致您的样式发生变化,您可能不喜欢。但它回答了您的问题,为什么您必须定义 select 规则,并且您可能正在使用 Bootstrap,因为您喜欢他们的样式选择。

【讨论】:

  • 到目前为止,我正在使用@stdob 提供的解决方案;使用一个新的类。我在提供的小提琴中尝试了您的建议,但它没有突出显示该行。
  • 抱歉回复晚了。杂耍项目。谢谢你的详尽解释。我认为您应该在回答中强调样式有问题,并且 daTatable 类和 bootstrap 类不能很好地结合在一起;我在dataTables 的文档中没有看到的东西。
  • @gaitat - 我不认为这是考虑问题的方式,他们在一起玩得不好。其实我觉得正好相反! DataTables 插件具有原生的外观和感觉。但是,它也支持其他样式,例如 Bootstrap 和 Foundation。将链接的 css 文件视为皮肤。通过在 Bootstrap“皮肤”中链接,开发人员可以继续使用 Bootstrap 类并忽略本机 DataTable 类。如果它们不能很好地协同工作,开发人员将不得不使用本机类名称来获得 Bootstrap 外观。我同意,文档可能是明确的。
猜你喜欢
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 2012-05-16
相关资源
最近更新 更多