我的 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>
关于我需要做什么才能在中心位置打开的任何想法?
最佳答案
这极不可能是您的问题的原因,但我遇到了同样的问题,并在 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";
}
这段代码检查目标元素是否定义了 preventDefault 函数。默认情况下,target[0] 将等于 window 对象,它没有 preventDefault。但是,就我而言,我在 window 对象的全局范围内定义了一个名为 preventDefault 的函数。我的 window.preventDefault 导致 if-block 评估为 true,从而覆盖“center”的默认 options.at 值。
正如我所说,您定义函数 window.preventDefault 的可能性很小,但这就是我的原因。
1 编辑:根据评论,这实际上不太可能。很高兴能帮到大家。
关于jquery-ui - jQuery 对话框总是打开左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14129627/