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