Jquery 剑道网格:取消当前编辑后如何将焦点设置回网格单元格
我正在研究如何覆盖剑道网格的一些默认键盘命令。正如在my中一样,我正在截取enter键,并希望按照下面代码块中的操作向下移动单元格Jquery 剑道网格:取消当前编辑后如何将焦点设置回网格单元格,jquery,kendo-ui,kendo-grid,Jquery,Kendo Ui,Kendo Grid,我正在研究如何覆盖剑道网格的一些默认键盘命令。正如在my中一样,我正在截取enter键,并希望按照下面代码块中的操作向下移动单元格 if (e.keyCode == 13) { // enter var current = grid.current(); var index = current.index(); var next = $(current).closest('tr').next('tr');
if (e.keyCode == 13) { // enter
var current = grid.current();
var index = current.index();
var next = $(current).closest('tr').next('tr');
var td = next.find('td:eq(' + index + ')');
grid.closeCell();
grid.current(td);
current = grid.current();
grid.focus(current);
//current.focus();
return;
}
它离工作很近。如果我在按下回车键之前处于导航模式,则所有操作仍然正常。但是,如果我处于编辑模式(例如在单元格中单击tab键,然后按enter键),它确实会进入单元格并返回导航模式,但是我似乎没有正确的焦点。左右箭头键不起作用,上下箭头似乎显示焦点在页面上,而不是在网格内
我尝试过用各种方式调用focus,但我就是无法让它工作。你知道我做错了什么吗?任何帮助都将不胜感激
提前感谢您需要将焦点设置在表本身上,因为网格的键控事件处理程序绑定到表:
scope.$on("kendoRendered", function (e) {
var grid = scope.grid;
var elem = $(grid.table);
// attach keydown handler to the table
var newHandler = function (e) {
if (e.keyCode == 13) { // enter
var current = grid.current();
var index = current.index();
var next = $(current).closest('tr').next('tr');
grid.closeCell();
var td = next.find('td:eq(' + index + ')');
grid.current(td);
$(td).closest("table").focus();
}
};
$(elem).on("keydown", newHandler);
});
()我只是尝试了这个小的扩展,我认为应该是一样的-我想用箭头键也可以这样做(我假设与输入的相同),但是出于某种原因,组合首先处理键,所以在我们进入新单元格之前,组合值在这里改变()我已经处理了向下箭头(也会做向上箭头)。有没有办法阻止箭头键出现这种情况(我想知道为什么它们与回车键不同)。谢谢你必须禁用小部件的键盘导航;