0

私は自分のウィジェットで jqxGrid を使用しています。JqxGrid が何度もロードされるドロップダウンがあります。グリッドにセル クリック イベントをアタッチしました。グリッドがロードされるたびに問題が発生し、セル クリック イベントが何度も呼び出されます。たとえば、最初はロード セル クリックが 1 回呼び出されますが、グリッドがドロップダウンから再度ロードされると、セル クリックが 2 回呼び出され、再び 3 回呼び出されます。

サンプルフィドルを添付しました。セルクリックボタンをクリックするたびに、グリッドクリックイベントが追加されます。コンソールにテスト メッセージを出力しています。

 $('#jqxgrid').on('cellclick', function (event) {});

ここでフィドルを参照してくださいFIDDLE SAMPLE

ありがとう

4

1 に答える 1

2

コードでは、データをロードするたびにグリッドを再作成しています。一度だけ作成する必要があります。データをロードするときは、source.data を更新してから、グリッドで updatebounddata を呼び出します。毎回グリッドを再作成してからイベント ハンドラーを作成しているため、ハンドラーが山積みになっています。

参照: http://jsfiddle.net/HB3Cb/96/

ソース、dataAdapter、およびグリッドの作成を init 関数に移動し、init および updateData ハンドラーを公開しました。

return {
    init: init,
    updateData: updateData
}

コンソールを確認すると、データを何度リロードしても、ハンドラーはクリックごとに 1 回しか起動しないことがわかります。

于 2015-01-12T19:39:17.393 に答える