panel.addButton({value:"XXX",section:...,action:function(){ * }}) を使用してパネルにボタンを追加しましたが、ボタンのアクションをオーバーライドしたいのですが、どうすればよいですかこれ!
1 に答える
1
action
関数自体を「変更」することはできません。action
作成したボタン ノードに特定のイベントのイベント リスナーを追加するためのショートカットです。できることは、そのイベント リスナーを削除して別のリスナーを追加することです。
追加するイベント リスナーは 1 つだけなのでaction
、すべてのイベント リスナーを削除することで安全に削除できます。でボタン ノードを取得し、新しいイベント リスナーgetButton
を呼び出しdetachAll
てアタッチするだけです。
var panel = new Y.Panel({ /* panel config with some buttons */ });
// later on...
var button = panel.getButton(1);
button.detachAll();
button.on('click', newAction);
于 2013-02-22T19:30:36.650 に答える