jquery-ui - jQuery 对话框总是打开左上角

标签 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>

关于我需要做什么才能在中心位置打开的任何想法?

最佳答案

这极不可能是您的问题的原因,但我遇到了同样的问题,并在 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/

相关文章:

javascript - 使用 jQuery UI 选项卡重定向到另一个页面

json - 将 fnRender 与 ajax 源数据表结合使用

javascript - 拖动项目时更改变量的值AngularJS JQuery-UI

jquery - 如何从 jQueryUI Slider 获取最小值和最大值

在 AJAX 风格 jQuery UI 选项卡中加载的 jQuery UI 对话框窗口

javascript - MIDI.js 音符持续时间不会改变

jquery - 如何在 AJAX 调用期间获取等待加载程序

javascript - jquery ui 可在容器内拖动滚动

javascript - 如何让 jQuery UI slider 在单击后检测 mouseup

jquery-ui - css3.0 - 内容属性