Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery UI对话框未居中_Jquery_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

jQuery UI对话框未居中

jQuery UI对话框未居中,jquery,jquery-ui,jquery-ui-dialog,Jquery,Jquery Ui,Jquery Ui Dialog,我使用jQuery,将内容加载到div中,然后将其显示为对话框。但是,它并没有使对话框居中 有人有解决办法吗 代码: 函数核心加载寄存器() { $(“正文”)。追加(“”); $(“#Register_Popup”).load(“index.php?section=FrontPage&page=Register&nogui=true”); $(“注册”弹出窗口)。对话框({ 莫代尔:是的, 高度:“自动”, 宽度:“自动”, 按钮: { “注册新帐户”: 函数() { }, “取消”: 函数(

我使用jQuery,将内容加载到div中,然后将其显示为对话框。但是,它并没有使对话框居中

有人有解决办法吗

代码:

函数核心加载寄存器()
{
$(“正文”)。追加(“”);
$(“#Register_Popup”).load(“index.php?section=FrontPage&page=Register&nogui=true”);
$(“注册”弹出窗口)。对话框({
莫代尔:是的,
高度:“自动”,
宽度:“自动”,
按钮:
{
“注册新帐户”:
函数()
{
},
“取消”:
函数()
{
$(此).dialog(“关闭”);
}
}
});
}
示例屏幕截图:


由于您的内容是动态的,请尝试等待load命令首先完成

$("#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"); 
        } 
      } 
  }); 
});

我发现使用特定的数值而不是“自动”高度和宽度选项效果更好,而且总是居中


这并不总是最佳的,尤其是在对话框中使用动态数据时。。但它对我很有效(使用jQueryUI1.9.2)。

我的解决方案与公认的答案类似。内容不是动态的,因为它是一个AJAX调用,而是在显示对话框之前立即分配图像标记的
src
。即使对话框上有固定的宽度和高度,它也无法居中

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

通过给它一个提示,对话框似乎能够意识到它的内容并正确定位自己。

尝试这样做:尝试过,但对我不起作用。我不确定您的对话框代码在DOM中的位置,但我会尝试将其作为
之前的最后一个元素,我将jQueryUI更新为最新版本,它神奇地修复了自己。默认情况下,位置居中。但即便如此,我还是试着给它下定义,但它仍然不起作用。问题是我正在加载内容,这使它偏离中心。根据您的评论更新答案。
setTimeout(function() {
            img.dialog({
                draggable: true,
                height: 'auto',
                width: 'auto',
                maxHeight: '768',
                maxWidth: '1024',
                modal: true
            });
        }, 500 );