我需要在使用此javascript代码创建的关闭(隐藏)模式窗口上执行泛型函数(console.log):
YUI().ready(function(A) {
YUI().use('aui-base','liferay-util-window', function(A) {
Liferay.Util.Window.getWindow(
{
title : title,
uri: url,
dialog: {
cache: false,
modal: true
}
}
).on('hide', function() {
console.log("Modal closed")});
});
});
' URL '和' 标题'是从上面的代码传递的两个变量
它不起作用。
有什么建议吗?
答案 0 :(得分:3)
只有将 destroyOnHide 对话框选项设置为 true ,才能生效。
默认设置为false,因此只会隐藏弹出窗口。
见下文:
YUI().ready(function(A) {
YUI().use('aui-base','liferay-util-window', function(A) {
Liferay.Util.Window.getWindow({
title : title,
uri: url,
dialog: {
destroyOnHide: true,
cache: false,
modal: true
}
}).after('destroy', function(event) {
alert('DESTROY MODAL!');
});
});
});
然后您可以像往常一样使用 after()方法拦截销毁事件。
答案 1 :(得分:1)
您可以将on('hide'
替换为:
YUI().ready(function(A) {
YUI().use('aui-base','liferay-util-window', function(A) {
Liferay.Util.Window.getWindow(
{
title : title,
uri: url,
dialog: {
cache: false,
modal: true
}
}
) on: {
close: function(event) {
console.log("Modal closed")});
});
});
答案 2 :(得分:0)
在关闭对话框时调用的正确事件是destroy
事件。
Liferay Window
扩展了A.Component
个destroy
事件。事实上,关闭一个Window,正确的方法是调用desploy()
方法。
AUI().ready(function(A) {
AUI().use('aui-base','liferay-util-window', function(A) {
Liferay.Util.Window.getWindow(
{
title : title,
uri: url,
dialog: {
cache: false,
modal: true
}
}
).after('destroy', function() {
console.log("Modal closed");
});
});
});