0

我有一个启用了单元格编辑的 jqGrid。

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

当用户单击单元格开始编辑时,将显示单元格编辑器。但是,用户必须直接单击单元格编辑器来触发click事件并显示屏幕键盘(实际上必须“双击”来编辑值)。

我想要一种能够click在编辑开始后立即触发单元格编辑器事件的方法。

我尝试了以下方法,但它不起作用:

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

谁能告诉我该怎么做?

4

2 回答 2

2

我设法通过执行以下操作来实现这一目标。

首先,我设置以下内容:

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

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

$(document).on('focus.jqg', '.jqg-editor', function() {
    $(this).trigger('click');
});
于 2012-12-05T15:31:04.463 回答
0

伙计们!我确实喜欢@FixMaker 的想法,谢谢!我在下面展示了我所做的。

    $(document).ready(function () {

        $(document).on('click', '#grupo_pesquisadores input', function() {
             $(this).trigger('click');

             if ($(this).attr("class") == 'fileIndividual') {
                  if ( $(this).is(":checked") ) {
                            $("#grupo_pesquisadores").find(".fileShared").prop("checked", false);
                  }
             }
             if ($(this).attr("class") == 'fileShared') {
                  if ( $(this).is(":checked") ) {
                            $("#grupo_pesquisadores").find(".fileIndividual").prop("checked", false);
                  }
             }
        });

   }); //document.ready end

我用它来控制我拥有的一些复选框。当我点击“fileIndividual”复选框时,它会取消选中所有选中的“fileShared”复选框,如果我点击任何“fileShared”复选框,它会取消选中“fileIndividual”复选框。

于 2020-04-08T20:31:37.590 回答