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 - Fatal编程技术网

Jquery ui jQuery对话框始终打开左上角

Jquery ui jQuery对话框始终打开左上角,jquery-ui,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-

我的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>

$(“#提交”)。单击(函数(事件){
$(函数(){
$('#dialog')。dialog({
自动打开:错误,
宽度:500,
身高:500,
位置:'中心'
});
});
$('dialog')。dialog('open');
});
关于我需要做什么才能使它在中心位置打开,有什么想法吗?

使用这个

<input id='submit' type="submit" value="Submit">
<div id='dialog'></div>
<script>
$('#submit').on('click', function(event){
    $(function() {
        $('#dialog').dialog({
            autoOpen: false,
            position:'center'
        });
    });
    $('#dialog').dialog('open');
});
</script>​

$(“#提交”)。在('click',函数(事件){
$(函数(){
$('#dialog')。dialog({
自动打开:错误,
位置:'中心'
});
});
$('dialog')。dialog('open');
});
​
问候。

很可能这是您的问题的原因,但我也遇到了同样的问题,并在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函数。默认情况下,目标[0]将等于没有默认值的窗口对象。然而,在我的例子中,我在窗口对象的全局范围中定义了一个名为preventDefault的函数。My window.preventDefault导致if块的计算结果为true,从而覆盖默认选项.at的值“center”

正如我所说,您很可能没有定义window.preventDefault函数,但这正是导致我这么做的原因


1编辑:根据评论,这其实不太可能。很高兴我能帮助大家

使用下一个对话框选项

$('#dialog').dialog({
            autoOpen: false,
            width:500,
            height:500,
            position:
            {
               my: "center",
               at: "center",
               of: window
             }
        });   

答案很简单,只需添加jquery文件jquery-1.11.1.js,就可以了

我遇到一个问题,它将集中在IE11中,但在IE7中,它将位于左上角,甚至带有position属性

我使用的是jqueryUI 1.11.2,对IE7和更旧版本的支持似乎在1.8.2或其他地方被删除了。无论如何,解决方案是在我的值周围加上双引号,如下所示:

$('#dialog').dialog({
        autoOpen: false,
        modal: true,
        width: '200',
        title: 'Confirm Delete',
        position: {
            my: "center",
            at: "center",
            of: $("body"),
            within: $("body")
        },
        buttons: {
            'Delete': function () {
                $('#btnDeleteAll').click();
                $(this).dialog('close');
            },
            Cancel: function () {
                $(this).dialog('close');
            }
        }
    });

我刚试过单引号,这些也行。

在这里很好用。另一方面,最好将jQuery封装在文档就绪调用中。j08691,谢谢你的提示。谢谢MG_Bautista。然而,当我剪切并发布你的代码来替换我的代码时,即使我删除了所有的临时浏览器文件,对话框仍然会打开左上角;IE8打开左上角的对话框,Chrome按预期打开它的中心,FF打开它的顶部中心。不好的!!有没有办法确保对话框在所有主要浏览器中都打开?如果我没有忽略什么的话,我认为jQuery的主要吸引力之一是它解决了浏览器兼容性问题<代码>我也遇到了同样的问题,这是因为重新定义了window.preventDefault。我想其他人重新定义window.preventDefault的可能性不大。很高兴听到我能帮上忙。你帮了我好几个小时的忙。我在全局范围内发现了一个名为preventDefault的普通老javascript函数,它触发了这个问题。非常感谢!那些使用JavaScripTools()的人(我很久以前写过一个库)将面临这个问题,因为有一个名为preventDefault的全局函数(浏览器的实际情况在当时非常不同:-))。我必须破解它,将preventDefault存储在一个临时变量中,设置window.preventDefault=null,调用dialog()方法,然后恢复旧函数。谢谢!这就是我的处境!在这上面花了几个小时,但在你的帖子中,我搜索了preventDefault并找到了我的问题。棒极了!