2011-08-04 73 views
1

我有這樣的代碼:如何在此對話框動態加載頁面時兩次加載對話框JQuery UI?

$(function(){ 

      $('#dialog').dialog({ 
       autoOpen: false, 
       closeOnEscape: false, 
       modal: true, 
       width: 450, 
       buttons: { 
        "Enviar": function() { 
         $('#new_message').submit(); 
        } 
       } 
      }); 

      $('#dialog_link').click(function(){ 
       $('#dialog').load('/messages/new'); 
       $('#dialog').dialog("open"); 
      }); 

     }); 

當我點擊的首次對話打開,但在第二次也沒開,我知道這就是問題所在時使用。加載方法,當我評論這段代碼時,當我點擊鏈接時,對話框始終打開。

如何解決?

PS:我使用的是Rails的3

回答

0

因爲jQuery對話框的非常怪異的行爲,這裏的如何,我發現這是最好的處理這種情況:

我建我的HTML像這樣的:

<div id="myDialog"> 
</div> 

... dynamically loaded HTML comes in a <div class="clearOnClose"></div> container 

然後我的javascript:

var myDialog = $('#myDialog'); 

... 

if (myDialog.is('.ui-dialog-content')) { 
    myDialog.dialog('open'); 
} else { 
    myDialog.dialog({ modal: true, position: [200, 100], close: clearOnClose, etc. other options... }); 
} 

... 

// need to call on dialogs to make sure they don't interfere with each other 
var clearOnClose = function (event, ui) { 
    jQuery(this).find('div.clearOnClose').html(''); 
}; 
相關問題