如何在关闭时销毁YUI面板?

时间:2011-02-18 01:56:19

标签: javascript javascript-events yui

我希望能够在用户点击关闭按钮时销毁YUI面板。

我尝试过使用hideEvent,但这不起作用。我假设因为对象仍处于活动状态,因此无法销毁:

panel.hideEvent.subscribe(function(o) {
    panel.destroy();
});

当用户点击关闭时,有没有办法销毁Panel?虽然已为其分配了一个类:

,但未为关闭按钮分配ID
<a class="container-close" href="#">Close</a>

3 个答案:

答案 0 :(得分:3)

结束必须使用setTimeout()函数:

panel.hideEvent.subscribe(function(o) {
    setTimeout(function() {panel.destroy();}, 0);
});

答案 1 :(得分:0)

如果win是YUI简单对话框,我使用它:

w.win.hideEvent.subscribe(function(e) {
                                                    this.destroy();

});

答案 2 :(得分:0)

使用上面的hideEvent导致firebug中的javascript错误。以下解决方案没有问题:

dlg - &gt; yui2对话框或类似的实例。 dlg.close - &gt;是关闭图标的html元素

渲染对话框后使用以下代码:

//remove the default click handler (._doClose)
YAHOO.util.Event.removeListener(dlg.close, "click");   

//add a new click handler (._doClose)
YAHOO.util.Event.on(dlg.close, "click", function(){
    this.destroy();
}, dlg, true);