0

誰でもここで私を助けてもらえますか?

実行時にセル編集プラグインから beforeedit リスナーを削除したいと考えています。

次のコードを使用して、プラグインにリスナーを追加しました。

var gridPlugin = Ext.getCmp(gridId).getPlugin(pluginId);
gridPlugin.addListener(eventName,function(editor,e,eOpts){callbackFunction(editor, e, eOpts);});

しかし、今はリスナーを削除できません。

次のコードで試しています。

var gridPlugin = Ext.getCmp(gridId).getPlugin(pluginId);
gridPlugin.removeListener(eventName);

前もって感謝します、

4

1 に答える 1

0

Ext.grid.plugin.CellEditing.removeListenerの署名は次のとおりです( eventName, fn, [scope] ) (ドキュメントを参照)。つまり、リスナーをデタッチするイベント名を指定するだけでなく、リスナー関数も指定する必要があります。動作するはずのコードは次のとおりです。

var gridPlugin = Ext.getCmp(gridId).getPlugin(pluginId),
    listnerFunction = function(editor,e,eOpts){callbackFunction(editor, e, eOpts);}

gridPlugin.addListener(eventName,listnerFunction);

それから

var gridPlugin = Ext.getCmp(gridId).getPlugin(pluginId);
gridPlugin.removeListener(eventName, listenerFunction);

デタッチするときは、参照が利用可能である必要があることに注意してくださいlistenerFunction

于 2013-08-07T13:01:07.820 に答える