我使用panel.addButton({value:“XXX”,section:...,action:function(){ * }})添加按钮 一个面板,现在我想覆盖按钮的动作,如何做到这一点!
答案 0 :(得分:0)
您无法“更改”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);