1

我使用 panel.addButton({value:"XXX",section:...,action:function(){ * }}) 在面板上添加按钮,现在我想覆盖按钮的操作,怎么做这个!

4

1 回答 1

1

您不能“更改”action功能本身。action是将某些事件的事件侦听器添加到您创建的按钮节点的快捷方式。您可以做的是删除该事件侦听器并添加另一个。

由于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 回答