2009-08-27 9 views
1

私は別のページ(jQueryのload()関数を使って)からリストをロードしようとしているので、現在のリストをスライドさせて新しいリストをスライドさせています。javascriptとajax load、then effects

今、新しいリストが完全に読み込まれるまで、古いリストをスライドさせたくありません。誰でも実行中に2番目の考えを持っているように見えることなくこれを達成する方法を教えてもらえますか?

ありがとう。

編集のコードを入れていないため申し訳ありません

$('.cont a').click(function() { 
    var page = $(this).attr('href'); 
    $('.p-list').prepend('<div class="loader">&nbsp;</div>'); 
    $('.p-list').load(page +" .proj").hide().fadeIn(); 
    return false; 
}); 

しかし、私は実際にこれがどのように多くの助けを知らない...

+0

私はこの質問に答えることについてもう一度考えています。どうか明らかにしてください。 –

+0

のような第2の考え?基本的に、jqueryのload関数のコールバックを使用しようとすると、エフェクトが点滅します。それは上にスライドし、自分自身を下にスライドさせ(新しいページがまだロードされていないことを意味する)、新しいコンテンツを表示する。 – Indranil

+0

なぜコードを投稿しないのですか?真剣に。 –

答えて

5

これはそれを行う必要があります。

$("#someDiv").slideUp("slow").load('blah.html', function() { 
    $(this).slideDown("slow"); 
}); 

ロードのコールバック(または他のajaxメソッド)でslideDownメソッドを呼び出すと、eの後にアニメーションが確実に発生します礼拝はその応答でいっぱいです。

EDIT:あなたのコードにそれを適用するには:

$('.cont a').click(function() { 
     var page = $(this).attr('href'); 
     $('.p-list').prepend('<div class="loader"> </div>'); 
     $('.p-list').slideUp("slow").load(page +" .proj", function() { 
      $(this).fadeIn("slow"); //or show or slideDown 
     }); 
     return false; 
}); 
+0

コードスニペットのおかげで。 :) – Indranil

1

また、これを試すことができます。

$("#someDiv") 
    .slideUp("slow", function(){ 
     $(this).load('blah.html', function() { 
      $(this).slideDown("slow"); 
     } 
    ); 
}); 

slideUp効果が行われた後、ページをロードするとそれは、私のために、より良い仕事を。