2009-08-27 60 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效果完成。