1

Jqueryフェードインについて質問があります。divで使用しようとしていますが、最初に非表示にしても機能しません。

ページをロードするときにDIVを埋めるこのコードを使用しています:

$('#pagebody').html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>');
$('#pagebody').load("useradmin.php").hide().fadeIn('slow');

最初に小さなプリローダー画像をロードし、次にフェードインしたいdivのコンテンツをロードします。なぜこれが機能しないのですか?

4

4 に答える 4

1

$.load()非同期です-この場合.hide().fadeIn()、ロードが完了する前に実行されることを意味します。コンテンツがロードされたに実行されるコールバック関数にfadeInを配置します。

$('#pagebody').load("useradmin.php", function() {
    $( this ).hide().fadeIn('slow');
});

</ p>

于 2012-07-20T11:06:10.863 に答える
0

あなたはこのようなものを書くべきです。

 $('#pagebody').html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>').load("useradmin.php", function(){
       $('#pagebody').hide().fadeIn('slow');

    });
于 2012-07-20T11:06:40.170 に答える
0
$('#pagebody').load('useradmin.php', function() {
  $(this).fadeIn('slow');
});

それはうまくいくはずです...

于 2012-07-20T11:06:52.123 に答える
0

質問があるかどうかはわかりませんが、コンテンツが読み込まれるまで待ってからフェードを実行することをお勧めしますか?

$('#pagebody').hide()
   .html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>')
   .load("useradmin.php", function() {
       $(this).fadeIn('slow');
   });

別の注意点として、load()で追加されたコンテンツを置き換えるhtml()ので、 html()で追加<p>した<img>要素はuseradmin.phpのコンテンツで上書きされますが、これはプリローダーであるため、意図した効果だと思いますか?

于 2012-07-20T11:07:09.373 に答える