key-prefocus
自:KeyTable 2.9.0
.
請注意 - 此屬性需要 DataTables 的 KeyTable 擴充套件。
描述
此事件會在 KeyTable 將焦點從目前單元格(如果有的話)模糊化,然後聚焦到新的單元格之前觸發。它提供了一種在 KeyTable 對表格執行任何互動變更之前,取消焦點的方式。
若要取消焦點動作,請從您的 key-prefocus
事件處理常式中返回 false
。由於它是一個 Javascript 函式,您可以執行檢查來判斷應該返回什麼值(注意沒有 return 陳述式,即 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;
}
});
相關
以下選項直接相關,也可能在您的應用程式開發中很有用。