2011-09-29 32 views
1

我试图制作一个从顶部更新的列表。每次当新的列表项被插入时,旧的项目将下移一起顺利在jQuery中更新时平滑移动div

所以,首先我生成列表项的每一次点击

function addItem(){ 
$('#public').prepend('<li><div id="item' + i + '" class="tile"></div></li>'); 
$('#item' + i).fadeIn();           
i ++} 

然后我试图动画()下来,通过使用代码如下:

$('.tile').animate({top:42},500); 

奇怪的是,只有最后一个元素会顺畅地动画下来,其他元素仍然会被压扁。之间总是有42px的白色。

回答

0

我看不到变量被初始化了吗?我的意思是,它是否增加,因为你没有在方法中传递变量或从某处获取当前值。顺便说一句,我不认为你需要使用变量。您可以使用jQuery获取所有兄弟,并在该项目列表上调用动画(当然,if语句会跳过最新添加的项目)。

+0

谢谢。该变量在此方法之外。您可以查看演示代码了解详细信息。 要得到所有的兄弟姐妹,实际上$('。tile')有点儿得到它们。由于每个项目都有这个类。但是除了最后一张外,他们没有得到动画。这就是我感到奇怪的原因。 – Pei

+0

也许你必须遍历所有项目(.each)并逐个调用项目的动画方法。只是一个疯狂的猜测。 –