key-prefocus
自版本:KeyTable 2.9.0
.
请注意 - 此属性需要 DataTables 的 KeyTable 扩展。
描述
此事件在 KeyTable 从当前单元格(如果有焦点)模糊焦点并聚焦到新单元格之前触发。它提供了一种在 KeyTable 对表格执行任何交互更改之前取消焦点的途径。
要取消焦点操作,请从您的 key-prefocus
事件处理程序中返回 false
。由于它是一个 Javascript 函数,您可以执行检查以确定应返回什么值(注意没有返回值,例如 undefined
不会导致取消焦点),包括检查被单击单元格所在行的值。
如上所述,此事件发生在 KeyTable 模糊当前具有焦点的单元格之前,因此如果您想取消焦点 _并_ 从当前具有焦点的单元格中模糊,则必须调用 cell.blur()
.
类型
function function( e, datatable, cell, originalEvent )
- 参数
名称 类型 可选 1 e
否 jQuery 事件对象
2 datatable
否 所涉表格的 DataTable API 实例
3 cell
否 一个 DataTables API 实例,包含要聚焦的单元格 (
cell()
)4 originalEvent
否 触发此焦点的原始事件。它可能是
- DOM
click
事件 - 例如单击以聚焦到单元格 - DOM
focus
事件 - 例如使用 Tab 在页面周围导航并 Tab 到表格中。 null
: 没有原始事件 - 例如使用cell().focus()
.
- DOM
示例
禁止聚焦到任何不满足条件的单元格。
var table = new DataTable('#myTable', {
keys: true
});
table.on('key-prefocus', function (e, dt, cell, currentCell, org) {
let row = dt.row(cell.index().row).data();
return row.fruit === 'Apple' ? false : true;
});
如上所述,但在禁止时模糊焦点。
var table = new DataTable('#myTable', {
keys: true
});
table.on('key-prefocus', function (e, dt, cell, org) {
let row = dt.row(cell.index().row).data();
if (row.fruit === 'Apple') {
// Blur current focus
dt.cell.blur();
return false;
}
});
相关
以下选项与之直接相关,并且可能在您的应用程序开发中也很有用。