jquery模态对话框按钮关闭无法正常工作

时间:2012-11-13 13:34:59

标签: javascript button modal-dialog

$(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()会。
我看起来每个人都在解决我的问题。有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:0)

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

$(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');
        });
});

答案 1 :(得分:0)

试试这个:

$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');

答案 2 :(得分:0)

请尝试以下代码:

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