0
私はdatatablesを使用しています。選択とキーテーブルの機能を一緒に使用しようとしています。 this jsfiddleをご覧ください。データテーブルのキーダウン時に行を選択解除する方法
$(document).ready(function() {
$('#data-table')
.DataTable({
"select": {
"style": "os"
},
"keys": true
}).on('key-focus', function() {
$('#data-table').DataTable().row(getRowIdx()).select();
})
.on('click', 'tbody td', function() {
var rowIdx = $('#data-table').DataTable().cell(this).index().row;
$('#data-table').DataTable().row(rowIdx).select();
}).on('key', function(e, datatable, key, cell, originalEvent) {
if (key === 13) {
var data = $('#data-table').DataTable().row(getRowIdx()).data();
$("#output").html("Code: " + data[0] + ". Description: " + data[1]);
}
});
});
function getRowIdx() {
return $('#data-table').DataTable().cell({
focused: true
}).index().row;
}
私がクリックした最初の行を非選択にしない限り、キーを押したときを除いて、ほとんど完璧に機能します。まるでシフトキーを押したように振る舞います。
私が2番目の問題は、Enterキーを押すと最初の列データが表示されますが、行IDを表示する必要があることです。
あなたはまた、table
としての代わりに、毎回それを呼び出す$('#data-table').DataTable()
の参照を保持select()
前deselect()
すべての行を使用する必要があるこの2つの問題
このいただきありがとうございます。 deselect()では、Ctrlキーを使用して複数の行を選択することができません。 – hijacker83