Как уничтожить панель YUI при закрытии? - PullRequest
0 голосов
/ 18 февраля 2011

Я хочу иметь возможность уничтожить панель YUI, когда пользователь нажимает кнопку закрытия.

Я пытался использовать hideEvent, но это не работает. Я предполагаю, так как объект все еще активен и поэтому не может быть уничтожен:

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

Есть ли способ уничтожить панель, когда пользователь нажимает кнопку закрытия? Кнопке закрытия не присвоен идентификатор, хотя ей присвоен класс:

<a class="container-close" href="#">Close</a>

Ответы [ 3 ]

3 голосов
/ 26 февраля 2011

Завершение использования функции setTimeout ():

panel.hideEvent.subscribe(function(o) {
    setTimeout(function() {panel.destroy();}, 0);
});
0 голосов
/ 19 ноября 2013

Использование HideEvent, как указано выше, приводит к ошибкам JavaScript в Firebug.Следующее решение работает без проблем:

dlg -> экземпляр диалога yui2 или аналогичный.dlg.close -> является 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);
0 голосов
/ 15 августа 2011

Где win - это простой диалог YUI, я использую это:

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

});
...