2012-12-05 64 views
0

我有一个启用了单元格编辑的jqGrid。jqGrid单元格编辑器上的触发点击事件

我也有一个委托click事件的所有<input>元素。这意味着当用户点击<input>时,将显示屏幕键盘,以便他们可以编辑该值(此解决方案适用于触摸屏)。

当用户单击单元格以启动编辑时,会显示单元格编辑器。但是,用户必须直接单击单元格编辑器才能触发事件并显示屏幕上的键盘(实际上必须“双击”以编辑该值)。

我希望能够在编辑开始后尽快触发单元编辑器的click事件。

我尝试以下,但它不工作:

$('#myGrid').jqGrid({ 
    // ... 
    afterEditCell: function() { 
     $(document.activeElement).trigger('click'); 
    } 
}); 

谁能告诉我如何做到这一点?

回答

1

我设法通过执行以下操作来实现此目的。

首先,我设置如下:

$('#myGrid').jqGrid({ 
    //.... 
    cmTemplate: { editoptions: {class: 'jqg-editor'} } 
    //.... 
}); 

这可以确保由jqGrid的创建单元格编辑器会自动应用了该jqg-editor CSS类。因此,我们可以使用委托的“聚焦”事件来定位它,如下所示:

$(document).on('focus.jqg', '.jqg-editor', function() { 
    $(this).trigger('click'); 
});