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-editorCSS クラスが自動的に適用されます。したがって、次のように、委任された 'on focus' イベントを使用してターゲットにすることができます。

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