1

私はjqgridでセル編集を使用しています。そのために、以下に示すように多くの異なるjqgridイベントを使用しています... 1) beforeSelectRow、2) beforeEditCell、3) afterEditCell、4) onCellSelect、5) ondblClickRowなど...

さて、行のいずれかをダブルクリックすると、 beforeselectRow コードが最初に実行されます..これを防ぎたいのですが...どうすればいいですか??

いくつかのコード例は次のとおりです:-

ondblClickRow: function(id,irow,icol,e)
{
  ........
},
beforeSelectRow : function(rowid, e) 
{   

    if(rowid==lastSelected)
    {
        $sampleDialog.dialog('open');
    }
}
4

1 に答える 1

1

Web ブラウザによって、ダブルクリック イベントの処理方法が少し異なります。したがって、一般に、「dblclick」の前に「クリック」イベントを防ぐことはできません。コールバックbeforeSelectRowclick、jqGrid コード内で定義された enevt ハンドラー内で呼び出されます。イベント ハンドラーの jQuery ドキュメントではdblclick、以下を読むことができます (こちらを参照)。

click同じ要素のとdblclick イベントの両方にハンドラーをバインドすることはお勧めできません。トリガーされるイベントの順序はブラウザーによって異なり、2 つのイベントを受け取るclick前に 2 つのイベントを受け取るものdblclickもあれば、1 つだけ受け取るものもあります。ダブルクリックの感度 (ダブルクリックとして検出されるクリック間の最大時間) は、オペレーティング システムとブラウザーによって異なり、多くの場合、ユーザーが構成できます。

現在行っていることは、'click' ハンドルと 'dblclick' ハンドルの両方をバインドするための推奨される方法ではありません。

おそらくondblClickRowコールバック実装のどこかにある元の問題については説明していません。beforeSelectRow唯一の解決策は、プログラムの再編成を調べて、内のアクションとondblClickRowコールバックの間で衝突がないようにすることです。

于 2012-04-16T15:16:47.823 に答える