手动关闭Jquery对话框窗口

手动关闭Jquery对话框窗口,jquery,ajax,dialog,window,Jquery,Ajax,Dialog,Window,我试图在单击按钮时手动关闭Jquery对话框窗口,而不使用$('#id').Dialog('close')命令 原因是我在对话框窗口打开时调用了ajax,因此.dialog对响应不再起作用。我的问题是,我已经设法通过删除窗口本身和覆盖的div来手动关闭对话框窗口,但由于某些原因,背景窗体仍然处于禁用状态 尽管所有内容似乎都被删除了,但仍然无法单击按钮或表单字段,所以我想知道是否缺少了一些内容。有人知道Jquery还使用什么来禁用模式对话框窗口上的背景吗 更新 我尝试从HomeController

我试图在单击按钮时手动关闭
Jquery对话框窗口
,而不使用
$('#id').Dialog('close')
命令

原因是我在对话框窗口打开时调用了ajax,因此.dialog对响应不再起作用。我的问题是,我已经设法通过删除窗口本身和覆盖的div来手动关闭对话框窗口,但由于某些原因,背景窗体仍然处于禁用状态

尽管所有内容似乎都被删除了,但仍然无法单击按钮或表单字段,所以我想知道是否缺少了一些内容。有人知道Jquery还使用什么来禁用模式对话框窗口上的背景吗

更新
我尝试从HomeController返回视图,试图在手动删除覆盖和窗口后以某种方式刷新页面。但是页面仍然被禁用,我还没有找到原因。

为按钮分配一个单击功能

$("#button").click(function()
{
$("#id").dialog('close');
});


或者也许我不明白你的问题:)

不确定这怎么行:

    $("#modal").dialog({
        autoOpen : false,
        modal : true
    });

    // to open
    $("#modal").dialog("open"); 

    // to close
    $("#modal").dialog("close");

根据您的描述,ajax调用似乎以某种方式修改了页面,从而更改了jQueryUI对话框所基于的div。调用div(或其他元素)上的
对话框
方法后,它实际上属于jQueryUI,在调用
.dialog(“destroy”)
之前,不得触摸它。您必须:

  • 确保div和jQueryUI在其周围添加的标记不会被ajax调用或

  • 在修改div之前,调用
    $(“#id).dialog(“destroy”)
    ,然后在ajax调用完成后重新创建对话框

  • 试试这个:

    window.parent.jQuery('#ModalDialog').dialog('destroy');
    

    创建一个ajax调用和show dialog函数都驻留的作用域不是更容易吗?如何加载ajax?通常在调用后关闭应该可以工作…对于没有响应的表单,这可能是由于一些覆盖,不是吗?你能给我一个如何创建这样一个作用域的示例吗?我已经做过了这些。关闭函数在Ajax调用后不再工作,因为对话框窗口不再实例化。重新实例化对话框窗口会产生不希望出现的效果。请提供javascript代码(仅用于对话框的Ajax)以准确查看问题。
    window.parent.jQuery('#ModalDialog').dialog('destroy');