我已经在页面加载上定义了我的对话框。我可以看到对话框,到目前为止一切似乎都很好:
dlg1 = $("#modalHolder");
dlg1 = dlg1.dialog({
width: 300,
height: 150,
modal: true,
autoOpen: false,
resizable: false,
closeOnEscape: false,
draggable: false,
overlay: {
backgroundColor: 'red',
opacity: 0.65
},
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});
现在我想动态设置close事件,所以我尝试了这个:
function setCloseFunction(fun)
{
dlg1.dialog({
close: function(event, ui)
{
alert("2");
fun();
}
});
}
我称之为:
setCloseFunction(new Function("alert('1')"));
但是,关闭对话框时,警报永远不会出现。有什么想法吗?
答案 0 :(得分:1)
您应该写下以下内容:
dlg1.bind('dialogclose', function(event, ui) {
alert("2");
fun();
});
setCloseFunction(function() { alert('1'); });
编辑:要删除该功能,您可以拨打unbind('dialogclose')
。
答案 1 :(得分:1)
setCloseFunction
中使用的语法仅在初始化对话框时才正确。如果对话框已存在(如您的情况),则通常会更改以下选项:
dlg1.dialog('option', optionName, value);
对于close
之类的事件,您可以将侦听器绑定到它:
dlg1.bind('dialogclose', function(event, ui) {
...
});