2011-10-06 75 views
3

我正在使用jQuery,並將內容加載到div中,然後將其顯示爲對話框。但是,它不是集中在對話框中。jQuery UI對話框不居中

有沒有人有解決方案?

代碼:

function Core_Load_Register() 
{ 
    $("body").append("<div id='Register_Popup'></div>"); 
    $("#Register_Popup").load("index.php?section=FrontPage&page=Register&nogui=true"); 
    $("#Register_Popup").dialog({ 
     modal: true, 
     height: "auto", 
     width: "auto", 
     buttons: 
     { 
      "Register New Account": 
      function() 
      { 

      }, 

      "Cancel": 
      function() 
      { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
} 

實例截圖:

jQuery Dialog not Centered Example http://oi54.tinypic.com/nlznl4.jpg

+1

嘗試這樣做:http://stackoverflow.com/questions/1467102/dialog-box-not-positions-center-screen –

+0

試過但沒有爲我工作。 –

+1

我不確定您的對話框代碼在DOM中的位置,但我會嘗試將它作爲「」之前的最後一個元素。 –

回答

9

因爲你的內容是動態的嘗試等待加載命令先完成。

$("#Register_Popup") 
    .load("index.php?section=FrontPage&page=Register&nogui=true", 
    function() 
    { 
    $("#Register_Popup").dialog({ 
     modal: true, 
     height: "auto", 
     width: "auto", 
     buttons: 
     { 
     "Register New Account": 
     function() 
     { 

     }, 

     "Cancel": 
     function() 
     { 
      $(this).dialog("close"); 
     } 
     } 
    }); 
}); 
+0

該位置默認居中。但即便如此,我仍試圖定義它,但它仍然無效。問題是我正在加載使其偏離中心的內容。 –

+0

根據您的評論更新答案。 –

+0

完美,你做到了。謝謝 !!! –

2

我發現使用特定的數值而不是「自動」的高度和寬度選項的作用好得多,總是居中。

這並不總是最佳的,尤其是當在對話框中使用動態數據..但它爲我工作(使用jquery ui 1.9.2)。

0

我的解決方案與接受的答案類似。從AJAX調用的角度來看,內容並不是動態的,而是在顯示對話框之前立即分配了圖像標記的src。即使在對話框中有固定的寬度和高度,它也無法居中。

setTimeout(function() { 
      img.dialog({ 
       draggable: true, 
       height: 'auto', 
       width: 'auto', 
       maxHeight: '768', 
       maxWidth: '1024', 
       modal: true 
      }); 
     }, 500); 

給予它timeout似乎對話能夠了解它的內容和位置本身的正確。