我目前正在使用Bootstrap 4 beta / JQuery和Datatables以及扩展Select和KeyTables构建网页。 KeyTable允许使用箭头键浏览所有单元格。我只想浏览整行。那么可以将键表单元格导航转换为行导航吗?

这是带有Bootstrap 4的KeyTables中默认单元格导航中的Example

最佳答案



这可以通过限制KeyTable插件侦听的键并处理KeyTable生成的单元格焦点/模糊事件来完成。

var table = $('#example').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu',
    keys: {
       keys: [ 13 /* ENTER */, 38 /* UP */, 40 /* DOWN */ ]
    }
});

// Handle event when cell gains focus
$('#example').on('key-focus.dt', function(e, datatable, cell){
    // Select highlighted row
    $(table.row(cell.index().row).node()).addClass('selected');
});

// Handle event when cell looses focus
$('#example').on('key-blur.dt', function(e, datatable, cell){
    // Deselect highlighted row
    $(table.row(cell.index().row).node()).removeClass('selected');
});

// Handle key event that hasn't been handled by KeyTable
$('#example').on('key.dt', function(e, datatable, key, cell, originalEvent){
    // If ENTER key is pressed
    if(key === 13){
        // Get highlighted row data
        var data = table.row(cell.index().row).data();

        // FOR DEMONSTRATION ONLY
        $("#example-console").html(data.join(', '));
    }
});


需要额外的CSS规则来隐藏KeyTable插件使用的单元格突出显示。

演示

有关代码和演示,请参见this example

链接

有关更多示例和详细信息,请参见jQuery DataTables: How to navigate rows with KeyTable plug-in

09-18 06:10