6

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>

中央に配置して開くために何をする必要があるかについてのアイデアはありますか?

4

5 に答える 5

8

これがあなたの問題の原因である可能性は非常に低いですが、私は同じ問題を抱えていて、 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] は、preventDefault を持たない window オブジェクトと等しくなります。ただし、私の場合は、window オブジェクトのグローバル スコープで preventDefault という関数を定義しました。私の window.preventDefault により、if ブロックが true と評価され、デフォルトの options.at 値「center」がオーバーライドされました。

私が言ったように、関数window.preventDefault を定義した可能性はほとんどありませんが、それが原因です。

1 編集:コメントに基づいて、実際にはそれほどありそうにありません。みんなを助けることができてよかった。

于 2013-02-14T15:45:39.730 に答える
1

これを使って

<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>​

ご挨拶。

于 2013-01-02T21:55:25.200 に答える
1

次のダイアログ オプションを使用する

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

JSFiddle DEMO

于 2013-06-18T12:28:26.157 に答える
0

答えは非常に簡単です。jquery ファイル jquery-1.11.1.js を追加するだけで済みます。

于 2014-05-22T16:31:12.457 に答える