如何在YUI3中覆盖面板按钮的事件处理程序

时间:2013-02-21 06:50:16

标签: yui

我使用panel.addButton({value:“XXX”,section:...,action:function(){ * }})添加按钮 一个面板,现在我想覆盖按钮的动作,如何做到这一点!

1 个答案:

答案 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);