2012-02-20 16 views
0

我试图为一组div元素(可以说50)运行以下动画,但是,$.each()函数仅适用于数组中的第一个元素。动画时间的无限调用不适用于“全部”元素

$.each(droplets, function(){ 
splashVanish(this); 
}); 



    function splashVanish(droplet) { 
    droplet.fadeOut(500, function(){ 
    droplet.css({'top':Math.random()*600+'px','left':Math.random()*1400+'px'}); 
    droplet.remove(); 
    $("body").append(droplet); 
      //recursive call for infinite animation time 
    droplet.fadeIn(500,function(){splashVanish(droplet)}); 
    }); 
} 

当上述代码运行时,只在阵列fadesOut第一div,随机化无限animatiion持续时间位置和fadesIn。可悲的是,所有其他49 div都是静态的,并且不执行相同的功能。

+0

什么是_dropplet_?它是一个jQuery对象吗?什么是_droplets_? jQ对象的集合?一些排序? – elclanrs 2012-02-20 08:11:26

+0

对不起,我没有说清楚..它只是一个'div'元素 – jmishra 2012-02-20 08:12:17

+0

它强烈地感觉'this'是'$ .each'回调中的整个集合,而jquery doc指出它应该是一个当前值为每个电话。你是否试图在那里断点并检查这个值? – kirilloid 2012-02-20 08:21:27

回答

1

根据您的意见,如果dropletsdiv的集合,您需要使用each()来代替。 $.each()迭代数组。试试这个,看看它是否有效。

droplets.each(function(){ 
    splashVanish($(this)); 
}); 
+0

哦,邪恶。有效。非常感谢@elclanrs – jmishra 2012-02-20 08:20:41