jQuery对话框始终打开左上角

wur*_*dge 6 jquery-ui

我的jQuery对话框总是在浏览器窗口的左上角打开.

以下显示了简化后的代码.

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
</head>
<body>
<input id='submit' type="submit" value="Submit">
<div id='dialog'></div>
<script>
$('#submit').click(function(event){
    $(function() {
        $('#dialog').dialog({
            autoOpen: false,
            width:500,
            height:500,
            position:'center'
        });
    });
    $('#dialog').dialog('open');
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有关我需要做什么的任何想法,以便它打开位于中心?

Wal*_*osz 7

这是非常1不可能的,这是你的问题的原因,但我有同样的问题,发现在jQuery的ui.js这段代码:

// /1.10.0/jquery-ui.js:
target = $( options.of )
...
// line 12053 
if ( target[0].preventDefault ) {
    // force left top to allow flipping
    options.at = "left top";
}
Run Code Online (Sandbox Code Playgroud)

该位代码检查目标元素是否定义了preventDefault函数.默认情况下,target [0]将等于window对象,该对象没有preventDefault.但是,在我的例子中,我在window对象的全局范围中定义了一个名为preventDefault的函数.我的window.preventDefault导致if-block计算为true,从而覆盖了"center"的默认options.at值.

正如我所说,这是非常1 不可能的,你所定义的函数window.preventDefault,但是这是什么原因造成的我.

1 编辑:基于评论,实际上并非不太可能.很高兴我可以帮助每个人.


MG_*_*sta 1

用这个

\n\n
<input id=\'submit\' type="submit" value="Submit">\n<div id=\'dialog\'></div>\n<script>\n$(\'#submit\').on(\'click\', function(event){\n    $(function() {\n        $(\'#dialog\').dialog({\n            autoOpen: false,\n            position:\'center\'\n        });\n    });\n    $(\'#dialog\').dialog(\'open\');\n});\n</script>\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

问候。

\n