我在尝试关闭YUI2事件侦听器时遇到问题。 我正在执行以下操作来建立侦听器并且运行良好,但对cancelButton的调用返回false并失败。每次打开对话框时,都会设置取消按钮侦听器,但是由于之前的侦听器未成功删除,因此会越来越多地调用cancel函数。
如何阻止这种情况发生?
var cancelButton = new YAHOO.util.Element( "buttonid" );
var handleCancelClick = function(e)
{
cancelButton.removeListener(handleCancelClick);
someotherstuff();
};
cancelButton.on('click', handleCancelClick, null, this);
答案 0 :(得分:1)
您需要将事件类型传递给removeListener。
cancelButton.removeListener("click", handleCancelClick);
请参阅http://developer.yahoo.com/yui/event/#removeevent或http://developer.yahoo.com/yui/docs/YAHOO.util.Element.html#method_removeListener
答案 1 :(得分:1)
您需要调用cancelButton.removeListener('click',handleCancelClick)。根据API文档,第一个arg是事件类型:
http://developer.yahoo.com/yui/docs/YAHOO.util.Element.html#method_removeListener