0
<div id="dialog"><img src="images/load.gif"/></div>

の前に再生されるこの gif がdocument.readyあり、ページの準備ができたら閉じようとしています。私が試してみました:

<script type="text/javascript">
$("#dialog").dialog('option', 'dialogClass', 'alert'); //show dialog modal while page is loading

$(document).ready(function() { //document is ready, close loading gif
$("#dialog").dialog('destroy');

このコードは機能しますが、読み込み中の gif は削除されず、ページに引き続き表示されます。追加しようとしまし$('#dialog').remove()たが、ページの残りの部分が実行されないため、ページが「壊れている」ようです。

ページの準備ができたら、このダイアログを削除するにはどうすればよいですか?

4

3 に答える 3

1

あなたのCSSで

#dialog {
display: none;
}
于 2012-10-09T01:39:35.113 に答える
0

これを試しましたか?

$("#dialog").hide();
于 2012-10-09T01:42:21.930 に答える
0

まず、jQueryメソッドを使用する前に、DOM(およびJQueryライブラリ)がロードされるのを待つことをお勧めします。

次に、Ajaxを介してコンテンツをロードしない限り、ダイアログ待機ボックスを表示してすぐに削除することは少し役に立ちません(ダイアログの作成と破棄の前の時間は非常に短いです)。

さらに、destroyで使用されるダイアログ関数は、元のHTMLコードを削除しません。ダイアログの作成中にダイアログプラグインによって行われたすべての変更のみが削除されます。

だから、あなたが適用するとき

$("#dialog").dialog('destroy');

削除するのは、ラップされているダイアログHTML構造のみです。

<div id="dialog"><img src="images/load.gif"/></div>

しかし、DIV自体ではありません。

私の見解では、最良の方法は、従来のHTMLとCSSを使用してスピナーを追加することです。ページが読み込まれ、jQueryが読み込まれたら、少し待ってから削除します。

あなたはCSSのこの部分を持つことができます

#dialog
{
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0.8;
    background-color: grey;
    text-align: center;
    padding-top: 50px;
}

そしてこのJavascriptの断片

$(document).ready(function() {

    // Wait a short delay, animate opacity and finally remove
    $("#dialog").delay(300).animate({
        "opacity" : 0
    }, 500, function() {
        $("#dialog").remove();
    });

});

幸運を

于 2012-10-09T01:43:18.833 に答える