1

jQuery の.html()関数を使用して HTML コンテンツを読み込んでいます。読み込もうとしている HTML コンテンツの一部は画像で、読み込みに時間がかかります。私がしているのはonclickイベントです。

$('div').on('click',function() {
    $('html').fadeOut(1000)
        .html(content)
        .load(function() {
            $('html').fadeIn(1000)
        });
});

私が望んでいたのは、DOM の読み込みが完了したら、それをフェードインさせたいということです。まだ終了していない場合は、非表示のままにしておきたいので、html ロードの前に fadeOut 関数を使用します。

これは可能ですか?その方法は私にはうまくいかないようです。

4

1 に答える 1

0

まず、HTML 要素全体を置き換える場合は、完全な要求サイクルを実行することもできます。これが本質的に最終的に得られるものであり、AJAX でこれを処理するよりも、完全な要求を使用してウィンドウ ロード イベントにフックする方が簡単です。ページ全体を置き換えていない場合は、セレクターが間違っています。

次に、DIV をロードするだけの場合は、DIV を非表示にし、ロード イベントをそれにバインドしてから、コンテンツをロードします。詳細については、http://api.jquery.com/load-event/メソッドの注意事項を参照してください。

$('div').on('click',function() {
    var $this = $(this); // save reference for future use
    $this.fadeOut(1000) // hide
         .load(function() { // hook up handler
             $this.fadeIn(1000)
         })
         .html(content);  // load content
});
于 2012-04-24T01:50:59.880 に答える