【问题标题】:JQUERY popUp div, check variable before closeJQUERY popUp div,关闭前检查变量
【发布时间】:2017-03-27 10:18:26
【问题描述】:
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”div 的 Jquery Dialog 弹出窗口,当用户单击弹出窗口右上角的“X”按钮时,代码会跳转到“close()”函数...但是弹出窗口已经关闭,我只想在 g_changesMade = FALSE 时关闭弹出窗口,

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

因此,解决方案是更改单击“X”时调用的函数以检查 g_changesMade 的值并执行必要的逻辑, 那么我怎样才能正确地关闭'x'呢?这可能吗?

【问题讨论】:

  • 尝试在“关闭”回调函数中返回false
  • beforeClose 应该在关闭之前调用,在你的代码中,“beforecolse”'c' 是小写的,这对于 jQuery 对话框来说是无效的函数,它应该是“beforeClose”。试试这行“beforeClose: function(){ return g_changesMade; }”

标签: javascript jquery asp.net dialog


【解决方案1】:

首先,没有名为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;
            }
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多