jquery ui对话框,打开新对话框并关闭后面的对话框

问题描述:

我的网站有一个页脚,可以打开4个不同的对话框并从独立页面向它们加载内容。jquery ui对话框,打开新对话框并关闭后面的对话框

如果您从搜索引擎输入页脚或键入url,页脚页面可以独立打开。

我有打开的页脚对话框的功能:

function FooterPopup(){ 
    $(document).ready(function(){ 
     $('#footerContactUs').on("click",function(){ 
      var $dialog=$('<div></div>').load($('#footerContactUs').attr('href')).dialog({ 
       close: function(event,ui){$(this).remove();}, 
       autoOpen:false, 
       width:700, 
       height:610, 
       resizable:'false', 
       modal:true, 
       show:'blind', 
       hide:{effect:'blind',duration:300}, 
       dialogClass:'Contact' 
      }); 
      $dialog.dialog('open'); 
      return false; 
     }); 
    }) 
} 

独立页面有链接,在一个不同的函数打开另一个对话框,

,所以我有2的情况

1.dialog在另一个对话框上打开。

2.dialog从独立页面打开。

代码:

function Consult(){ 
    $(document).ready(function(){ 
     $('.ConsultHotels').on("click",function(){ 
      var $dialog=$('<div></div>').load($('.ConsultHotels').attr('href')).dialog({ 
       modal:true, 
       close: function(event,ui){$(this).remove(); 
       $('.ui-datepicker').remove();}, 
       autoOpen:false, 
       width:750, 
       height:590, 
       resizable:'false', 
       show:'blind', 
       hide:{effect:'blind',duration:300}, 
       open:function(event,ui){$('body').find('.ui-dialog-content').eq(0).dialog("close");}, 
       dialogClass:'ConsultClass' 
      }); 
      $dialog.dialog('open'); 
      return false; 
     }); 
    }); 
} 

我的问题是,我不知道如何从第一种情况下关闭“父”对话框,而不在第二种情况下关闭对话框。

请帮忙,

谢谢。

+3

你知道你不需要'$(文件)。就绪(函数(){'这些功能。 –

为什么不在打开新对话框之前关闭任何打开的对话框?

$('.ConsultHotels').on("click",function(){ 
    // first close any open dialogs. This approach is used in stead of just doing a .hide() 
    // because it will invoke any dialog close callbacks. 
    $('.ui-dialog-titlebar-close:visible').click(); 

    // now initialize your dialog. 
    var $dialog = $('<div></div>').load($('.ConsultHotels').attr('href')).dialog(); 
}); 
+0

谢谢。这种方法工作! – Irena

+0

的唯一的事情是,当我关闭第一个对话框并打开第二个对话框,“.ui-widget-overlay”不会出现。也许这是因为我在做 - close:function(event,ui){$(this).remove();} ,在第一个对话框中,我怎么才能得到“.ui-widget-overlay”? – Irena

+0

在删除它之前销毁对话框小部件,否则它仍然会在内存中初始化.. $(this).dialog(“destroy “).remove(); – PriorityMark