如何从局部视图关闭jquery对话框

时间:2011-07-14 06:14:43

标签: jquery asp.net-mvc asp.net-mvc-3

我在主视图页面上有部分视图A.从这个Partialview我打开一个jquery 对话框,在其中打开部分视图。 我在部分视图中有一些按钮,这些按钮用于完成某项任务 当我点击按钮时事件正在触发但是当我尝试通过下面给出的代码关闭对话框时,我收到错误。 如果我在对话框打开时按下escape它会关闭但是当我点击按钮将其取回时它会再次出现同样的错误。 ie-当我只能打开一次对话框时。

$(function () {
    $( "#dialog:ui-dialog" ).dialog( "destroy" );
    $('#dialog').dialog({
        autoOpen: false,
        width: 700,
        resizable: false,
        modal: false,
        open: function (event, ui) { $(this).load('<%=Url.Action("PushButton","Body",new {Parm="text",Parm1="para"}) %>'); },
        buttons: {Cancel: function() {
                $( this ).dialog( "close" );
            }
        },
        position: 'top',
        closeOnEscape: true
    });
});

这就是我打开它的方式

$('#dialog').dialog('open');

这是我试图关闭它的功能,这是在对话框中打开的部分视图

$('#dialog').dialog('close');

我试图在partialview A上创建一个函数(从我点击并获取和对话框但得到相同的错误) 这是我得到的错误

Microsoft JScript运行时错误:对象不支持属性或方法“对话框”

请帮助我

2 个答案:

答案 0 :(得分:1)

试试这样:

buttons: {
    Cancel: function() {
        $('#dialog').dialog('close');
    }
}

答案 1 :(得分:0)

尝试将对话框的返回值设置为如下变量:

var dialogRef;

$(function () {
    dialogRef = $('#dialog').dialog({
        autoOpen: true,
        width: 700,
        resizable: false,
        modal: false,
        buttons: {Cancel: function() {
                $( this ).dialog( "close" );
            }
        },
        position: 'top',
        closeOnEscape: true
    });

     $("#innerButton").on("click", function() {
        dialogRef.dialog("close");
     });
});

Working jsFiddle