1

私のjQuery UIモーダルダイアログは、ボタンクリックイベントなどから表示されると画面中央に表示されますが、document.ready中に開くと、以下のloginDialog()メソッドで、スクロール可能なウィンドウの下部に表示されます。

この問題は、ダイアログを開く呼び出しの前に document.ready に多数の画像をロードしているという事実に関連していると思われます。画面の表示可能な部分は無効になっていますが、ダイアログはスクロール ウィンドウの下部にあります。ダイアログの位置オプションに注意するのは興味深いことです

position: 'top', 

document.ready の間も機能しないようです。

$(document).ready(function () {

        serverGetMenu();
        getPhotos();

        $("#loginDialog").dialog({
            .............
        });

        if (isLoginRequest()) {
            loginDialog();
        }
    });

document.ready 中または直後にダイアログを正しく配置するにはどうすればよいですか?

4

1 に答える 1

0

問題が解決しました: jquery-ui-1.9.2.custom.css が正しくないことが判明しました。

元の ThemeRoller の「ビルド」にはダイアログ ウィジェットが含まれていなかったので、ダイアログ ウィジェットを含める新しいビルドを作成しました。次に、既存の jquery-ui-1.9.2.custom.js を新しいものに置き換えましたが、jquery-ui-1.9.2.custom.css ファイルも更新しませんでした。

jQuery UI の経験が不足しているため、Dialog は機能していましたが、スタイリングが本来あるべきものから少しずれていることに気づきませんでした。マイナーな問題を修正するために、スタイリングを少し追加する必要がありました。正しい jquery-ui-1.9.2.custom.css は、私が修正しなければならなかったスタイリングの「問題」も解決しました。

document.ready でダイアログを表示しようとするまで、不足しているダイアログ スタイル クラスがそれほど大きな「問題」を明らかにしなかったことは、非常に興味深いことです。スタイリングがこのような奇妙な問題を引き起こし、追跡が非常に難しいとは知りませんでした。

于 2012-12-09T00:27:10.237 に答える