在jqGrid单元格编辑器上触发单击事件

时间:2012-12-05 14:43:19

标签: jquery jqgrid

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

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

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

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

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

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

谁能告诉我怎么做?

2 个答案:

答案 0 :(得分:1)

我设法通过以下方式实现了这一目标。

首先,我设置了以下内容:

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

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

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

答案 1 :(得分:0)

伙计们! 我确实喜欢@FixMaker的想法,Thks!我在下面显示我的工作。

    $(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”复选框。