2012-01-14 5 views
2

私は動的にダイアログを作成する機能を持っています。いくつかの時間は、私は、だから私はここでの問題は、私は、この関数の呼び出しを与えるとき、それは以前にダイアログを開いて開きますJQuery UI Multiple Dialog問題

function createDialogWithOutClose() 
{ 
    jQuery('#divPopup').dialog('destroy'); 

    var dialog = jQuery('#divPopup').dialog({ 
     autoOpen: false, 
     height: 450, 
     width: 650, 
     modal: true, 
     open: function(event, ui){ 
      jQuery('body').css('overflow','hidden'); 
     } 

    }); 

    jQuery('#divPopup').dialog('open'); 
} 

function createConfirmDialog(url,params) 
{ 
    jQuery('#divPopup').dialog('destroy'); 

    var dialog = jQuery('#divPopup').dialog({ 
     autoOpen: false, 
     resizable: false, 
     modal: true, 
     show: "blind", 
     hide: "explode", 
     open: function(event, ui){ 
      jQuery('body').css('overflow','hidden'); 
     }, 
     buttons: { 
      Ok: function() { 
       jQuery(this).dialog("close"); 
       jQuery.ajax({ 
        type: "POST", 
        url: url, 
        data: params 
       }); 
      }, 
      Cancel: function() { 
       jQuery(this).dialog("close"); 
      } 
     } 

    }); 

    jQuery('#divPopup').dialog('open'); 

} 

を機能するために作成したモーダルを必要とするか、またはダイアログ

を確認してください。

私は前のインスタンスがremoved.Itが動的にダイアログ

どれでもソリューションを作成doesntの取得ではないと思います?方法:

+0

が重複する可能性を見てください完全に閉じてダイアログを削除](http://stackoverflow.com/questions/2864740/jquery-how-to-completely-remove-a-dialog-on-close) – mplungjan

答えて

4
+0

Thx、そのうまくいった今 – AliMan

+0

@AliMan:これがあなたの質問に答えたなら、あなたはそれを受け入れられたとしてマークするべきです(そしてupvote、もちろん)。 – PPvG

+0

私はもう1つの問題があります。新しいダイアログを作成すると、divのIDを取得できません。 これにより、正しく処理されません。 jQuery( '#divPopup')。破壊する'); – AliMan

0

単に(オープン/クローズ)、ダイアログの状態をチェックするためにフラグを使用

var Open = false; 
$('button').click(function() { 
    if (!Open) { 
     Open = true; 
     $(newDiv).dialog({ 
      close: function (event, ui) { 
       Open = false; 
      } 
     }); 

    } else { 
     alert("Close opened dialog first"); 
    } 
});