Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 剑道网格:取消当前编辑后如何将焦点设置回网格单元格_Jquery_Kendo Ui_Kendo Grid - Fatal编程技术网

Jquery 剑道网格:取消当前编辑后如何将焦点设置回网格单元格

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');

我正在研究如何覆盖剑道网格的一些默认键盘命令。正如在my中一样,我正在截取enter键,并希望按照下面代码块中的操作向下移动单元格

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);
});

()

我只是尝试了这个小的扩展,我认为应该是一样的-我想用箭头键也可以这样做(我假设与输入的相同),但是出于某种原因,组合首先处理键,所以在我们进入新单元格之前,组合值在这里改变()我已经处理了向下箭头(也会做向上箭头)。有没有办法阻止箭头键出现这种情况(我想知道为什么它们与回车键不同)。谢谢你必须禁用小部件的键盘导航;