2009-08-27 59 views
1

我有一個JavaScript代碼,據此我試圖從一個單獨的頁面加載列表(使用jQuery的加載()函數),滑動當前列表並滑動新列表。javascript和ajax加載,然後效果

現在,我不希望舊列表滑動到新列表完成加載之後。任何人都可以告訴我如何實現這一點,而不像腳本在執行時有第二個想法..

謝謝。 。

編輯

$('.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

我對回答這個問題有第二個想法。請澄清。 – 2009-08-27 20:01:52

+0

又如何?基本上,當我嘗試使用jquery的加載函數的回調時,效果閃爍。它向上滑動,向下滑動(意味着新頁面尚未加載),然後顯示新內容。 – Indranil 2009-08-27 20:08:03

+0

爲什麼你不*發佈任何代碼?認真。 – 2009-08-27 20:13:51

回答

5

這應做到:

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

如果您在load的回調(或任何其他ajax方法)中調用slideDown方法,這將確保動畫發生在e已經充滿了迴應。

編輯:要應用到你的代碼:

$('.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 2009-08-27 20:57:27

1

你也可以試試這個:

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

這對我更好地工作,因爲加載頁面,一旦效果基本show效果完成。