2012-01-25 15 views
0

個人用サイトには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.ダイアログが別のダイアログの上に開きます。

2.ダイアログは独立したページから開きます。

コード:

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; 
     }); 
    }); 
} 

私の問題は、私は第2の状況でダイアログを閉じることなく第1の状況から「親」ダイアログを閉じる方法を知らないということです。

助けてください、

ありがとうございました。

+3

あなたはこれらの関数では、 '$(ドキュメント).ready(関数(){'必要はありません知っている。 –

答えて

1

なぜ新しいダイアログを開く前に開いているダイアログを閉じるだけではないのですか?

$('.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

唯一のことは、私がいる時ということです!取り組んでいます最初のダイアログを閉じて2番目のウィンドウを開くと、 ".ui-widget-overlay"は表示されません。最初のダイアログで?「.ui-widget-overlay」を返すにはどうすればいいですか? – Irena

+0

ダイアログウィジェットを削除する前にそれを破棄します。そうでなければ、メモリ内で初期化されます。$(this).dialog( "destroy ").remove(); – PriorityMark

関連する問題