Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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
Javascript 需要jqGrid内联编辑才能将焦点转到单击的单元格_Javascript_Jqgrid - Fatal编程技术网

Javascript 需要jqGrid内联编辑才能将焦点转到单击的单元格

Javascript 需要jqGrid内联编辑才能将焦点转到单击的单元格,javascript,jqgrid,Javascript,Jqgrid,其他人问过这个问题,但我找不到好的答案 使用jqgrid和内联编辑,是否可以将焦点放在选定的单元格上,而不是行上的第一个单元格上?在onCellSelect处理程序中,我可以移动焦点,但它会立即返回到行中的第一个单元格 当我退出onCellSelect回调时,Firebug总是崩溃,因此我在jqGrid源代码本身方面没有取得太大进展。我回答了这个问题。如果您使用双击进入内联编辑,您可以直接使用我以前的答案 如果使用行选择(onsetrowcallback),您将无法检测单击的单元格,因为

其他人问过这个问题,但我找不到好的答案

使用jqgrid和内联编辑,是否可以将焦点放在选定的单元格上,而不是行上的第一个单元格上?在
onCellSelect
处理程序中,我可以移动焦点,但它会立即返回到行中的第一个单元格


当我退出
onCellSelect
回调时,Firebug总是崩溃,因此我在jqGrid源代码本身方面没有取得太大进展。

我回答了这个问题。如果您使用双击进入内联编辑,您可以直接使用我以前的答案

如果使用行选择(
onsetrow
callback),您将无法检测单击的单元格,因为当前版本的jqGrid没有事件对象作为参数。are上最新版本的jqGrid已经有了参数(请参阅和),您可以在
onsetrow
中执行相同的操作

如果您确实需要使用发布的jqGrid 4.3.1版本,并且需要在
onsetrow
回调中设置焦点,那么您可以在选择Row回调之前另外使用
来缓存变量中最后一个
e.target
,并在
onsetrow

中使用它。我使用此代码(jqGrid 4.4.1)


我通过在表的每个td上附加一个dblclick事件成功地实现了这一点,我知道这不是最好的方法,但您可以随意优化它,您也可以忽略仅用于测试的setTimeout

 $("#jqGrid").on("dblclick", "td", function (event) {   
                 //   setTimeout(function () {
                        console.log(this);
                        $(event.target).find("input,select").focus();                     
                  //  }, 0);
                });
希望这对你有帮助

 $("#jqGrid").on("dblclick", "td", function (event) {   
                 //   setTimeout(function () {
                        console.log(this);
                        $(event.target).find("input,select").focus();                     
                  //  }, 0);
                });