JQUERY popUp div,在关闭前检查变量

时间:2017-03-27 10:18:26

标签: javascript jquery asp.net dialog

function InvokePage() {
    var layerDlg = $("#Layer").dialog({
        position: { my: "top", at: "bottom", of: $("header") },
        height: "auto",
        width: "auto",
        maxWidth: 400,
        modal: true,
        appendTo: "form",
        resizable: false,
        open: function (){},
        beforeclose: function()
        {
            var a = 1;
        },
        close: function () {
            if (g_changesMade) {
                //CODE FOR NOT CLOSING POPUP
                InvokeContinueWithoutSavePopUp();
            }
            else
            {
                //CODE FOR CLOSING POPUP
                $(this).parent().replaceWith("");
                layerDlg = null;
            }
        }
    });
}

所以......我正在打开一个带有' Layer'的Jquery Dialog popUp。 div,当用户点击' X'弹出窗口右上角的按钮代码跳转到' close()' function ...但是popUp已经关闭了,我只想关闭popUp如果g_changesMade = FALSE,

如果g_changesMade为TRUE,请打开InvokeContinueWithoutSavePopUp();,我尝试在关闭之前使用它,但它根本没有进入该功能。

那么解决方案就是更改“' X'单击以检查g_changesMade的值并执行必要的逻辑, 我怎样才能超越'x'然后关闭?这有可能吗?

1 个答案:

答案 0 :(得分:0)

首先,没有名为beforeclose的方法。必须为beforeClose,大写字母为 C

function InvokePage() {
    var layerDlg = $("#Layer").dialog({
        position: { my: "top", at: "bottom", of: $("header") },
        height: "auto",
        width: "auto",
        maxWidth: 400,
        modal: true,
        appendTo: "form",
        resizable: false,
        open: function (){},
        beforeClose: function() // <-- capital letter C
        {
            var a = 1;                
        },
        close: function () {
            if (g_changesMade) {
                //CODE FOR NOT CLOSING POPUP
                InvokeContinueWithoutSavePopUp();
            }
            else
            {
                //CODE FOR CLOSING POPUP
                $(this).parent().replaceWith("");
                layerDlg = null;
            }
        }
    });
}