2011-08-04 11 views
1

私はこのコードを持っている:このダイアログがページを動的に読み込むときに、ダイアログJQuery UIを2回読み込む方法は?

$(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:私はそのためのjQueryのダイアログの非常に奇妙な行動のRailsの3

答えて

0

で使用しています、ここで私はそれがこの状況に対処するのが最善です見つけた方法は次のとおりです。

私のような私の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(''); 
}; 
関連する問題