jquery-ui-dialog - 如何挂接到对话框关闭事件

我正在使用jquery-ui-dialog插件

我正在寻找在某些情况下对话框关闭时刷新页面的方法。

有没有办法从对话中捕获关闭事件?

我知道我可以在单击关闭按钮时运行代码,但这并不能覆盖用户用转义或右上角的x关闭。


答案 1

我找到了!

您可以使用以下代码捕获 close 事件:

 $('div#popup_content').on('dialogclose', function(event) {
     alert('closed');
 });

显然,我可以用我需要做的任何事情替换警报。
编辑:从 Jquery 1.7 开始,bind() 已经变成了 on()


答案 2

我相信您也可以在创建对话框时执行此操作(从我做的项目中复制):

dialog = $('#dialog').dialog({
    modal: true,
    autoOpen: false,
    width: 700,
    height: 500,
    minWidth: 700,
    minHeight: 500,
    position: ["center", 200],
    close: CloseFunction,
    overlay: {
        opacity: 0.5,
        background: "black"
    }
});

注意close: CloseFunction