Tabulator callEditCancelled回调:如何确定键码?

Tabulator callEditCancelled Callback: How to the Determine Key Code?

我正在尝试捕获在 Tabulator 中触发 cellEditCancelled 回调的关键代码,如下所示:

var table = new Tabulator(divId, {
    cellEditCancelled: function (cell) {
        //cell - cell component
        var col = cell.getField();
        var mycode= event.which || event.keyCode;  //'event' is undefined
        alert("cellEditCancelled called\ncolumn: " + col + "\nkeyCode: " + mycode);
    },
    columns: [
        { title: "Project ID", field: "Projectid", widthGrow: 1, responsive: 0, hozAlign: "center", editor: "autocomplete", editorParams: { showListOnEmpty: true, allowEmpty: false, values: window.projectIdList } },
        { title: "Cust Job", field: "CustomerJobId", widthGrow: 1.25, responsive: 0, hozAlign: "center", editor: "autocomplete", editorParams: { showListOnEmpty: true, allowEmpty: false, values: window.customerJobIdList } },
        { title: "Project Desc", field: "ProjectDesc", widthGrow: 1.5, responsive: 0, hozAlign: "center", editor: "autocomplete", editorParams: { showListOnEmpty: true, allowEmpty: false, values: window.projDescList } },
    ]
});

Tabulator 中的其他回调不同,callEditCancelled 回调显然不公开 event 对象。 (例如,cellClick 回调在其关联的函数签名中公开了一个事件对象。)

我需要区分 keyCode 值以确定如何处理 callEditCancelled 事件。例如,单击 Tab 键与单击 Esc 键的处理方式不同。

一定要简单。我错过了什么?

非常感谢任何帮助。

事件对象未传递到此函数中,因为 取消编辑 事件不是由按键触发的,它可以由任意数量的事物触发:

  • 注意力不集中
  • 按键
  • 鼠标事件
  • 滚动
  • Table 调整大小
  • 行更新
  • 在单元格组件上调用的 cancelEdit 函数或 table

如果您只是谈论关键事件,那么实际上并不取决于 table 何时触发取消事件,这些实际上由每个编辑器单独处理,每个编辑器都有一系列绑定监听失去焦点或某些关键事件,然后可以选择什么都不做,触发 success取消功能。

有关这方面的更多详细信息,请参阅 Editor Documentation

由于这些原因,没有事件对象传递到 callEditCancelled 回调中。调用此函数时,编辑已被取消,无法阻止它。

如果您特别希望跟踪关键事件,那么您可以考虑向文档中添加一个侦听器,以侦听最后一个 keypress/mouse 事件并将该事件对象存储在一个全局可访问的变量中。然后您可以在 callEditCancelled 回调中检查该变量以查看最后一个事件是什么。