手动关闭Jquery对话框窗口

时间:2012-01-09 17:01:33

标签: jquery ajax dialog window

我正在尝试在不使用Jquery Dialog window命令的情况下手动关闭按钮上的$('#id').dialog('close')

原因是我在打开对话框窗口时进行了ajax调用,因此.dialog不再适用于响应。我的问题是我已经设法通过删除窗口本身和叠加层的div来手动关闭对话窗口,但由于某种原因,背景窗体仍然保持禁用状态。

即使一切似乎都被删除了,仍然无法点击按钮或表单字段,所以我想知道我是否遗漏了一些内容。有谁知道Jquery在模态对话框窗口中使用什么来禁用背景?

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

4 个答案:

答案 0 :(得分:1)

根据您的描述,听起来像ajax调用正在以某种方式修改页面,这会更改jQueryUI对话框所基于的div。在div(或其他元素)上调用dialog方法后,它实际上属于jQueryUI,并且在调用.dialog("destroy")之后才能触摸它。你必须:

  1. 确保ajax调用的结果或

  2. 不会触及div和jQueryUI在其周围添加的标记
  3. 在修改div之前 之前,调用$("#id).dialog("destroy");然后在ajax调用完成之后重新创建对话框。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

将按钮功能分配给按钮

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

$( ".selector" ).bind( "dialogclose", function(event, ui) {
  ...
});

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

答案 3 :(得分:0)

不确定这不起作用:

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

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

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