3

私は、一連のデータを表示し、いくつかのイベント (行クリック イベント、列クリック イベントなど) をサブスクライブする、自己作成の社内グリッドを持っています。グリッド構築関数が呼び出されるたびに、コードの最初の行は $grid.empty() であり、DOM 要素のグリッドを物理的に空にするだけでなく、これらのイベントのバインドも解除します。以下の私のグラフは、イベントリスナーのゆっくりとした、しかし着実な増加を示しています。上昇は、データがグリッドにロードされ、イベントが配線されていることです。クエリごとに平均 10 ~ 11 個のイベント リスナーが増加しています。恐ろしいことではありませんが、1 時間もするとアプリケーションが使えなくなります。私は何かを見逃していますか、それとも間違った道を見下ろしていますか? どんな助けでも大歓迎です。

Google Chrome Dev Tools のイベント リスナー グラフ

詳細情報: jQuery 関数呼び出しが最後に変数をクリアしていないことがわかりました。例:

$.fn.myCustomFunction = function(parm) { var grid = this; {some more code, AJAX call };

最後に grid = null が必要です。ただし、そのコンテキストにより、グリッドが完全に空になります。

4

1 に答える 1

1

委任の使用:

$grid.on('click','tr',function(){
    //code stuff here
});
于 2013-07-23T14:18:39.340 に答える