繁体   English   中英

jQuery模式对话框按钮关闭无法正常工作

[英]jquery modal-dialog button close doesn't work properly

$(function () {
        $('#modalDlg2').live("click", function (event) {
            event.preventDefault();
            loadDialog(event, "/User/Create");
        });
        function loadDialog(event, target) {
            var $dialog = $('<div></div>');
            $dialog.empty();
            $dialog
    .load(target)
    .dialog({
    title:"Novo utilizador",
        modal: true,
        autoOpen: false,
        width: 600,
        show:'fade',
        hide:'fade',
        minHeight: 400,
        resizable: false
    });

     $dialog.dialog( "option", "buttons", {
            "Cancelar": function() { 
                    $(this).dialog("close");
                    $(this).empty();
                }         });
            $dialog.dialog('open');
        }            
    })

我的关闭按钮“ Cancelar”有问题,它应该关闭模式对话框,然后将其清空,但是似乎$(this..dialog(“ close”)不起作用,而.empty()起作用。
我一直在寻找解决问题的人。 有人可以帮我吗?

我会尝试将其放入负载的回调函数中:

$(function() {
    $('#modalDlg2').on("click", function(event) {
        event.preventDefault();
        loadDialog(event, "/User/Create");
    });

    function loadDialog(event, target) {
        var $dialog = $('<div></div>');
        $dialog.empty();
        $dialog.load(target, function() {
            $dialog.dialog({
                title: "Novo utilizador",
                modal: true,
                autoOpen: false,
                width: 600,
                show: 'fade',
                hide: 'fade',
                minHeight: 400,
                resizable: false
            });

            $dialog.dialog("option", "buttons", {
                "Cancelar": function() {
                    $(this).dialog("close");
                    $(this).empty();
                }
            });
            $dialog.dialog('open');
        });
});

尝试这个:

$dialog.dialog( "option", "buttons", {
    "Cancelar": function() { 
            $dialog.dialog("close");
            $(this).empty();
    }
});
$dialog.dialog('open');

要么

$dialog.dialog( "option", "buttons", {
   "Cancelar": $.proxy(function() { 
        $(this).dialog("close");
        $(this).empty();
    },this)         
});
$dialog.dialog('open');

尝试以下代码:

$dialog.dialog("option", "buttons", { "Cancelar": function() { $(this).remove(); } });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM