$ .each和动画混乱

时间:2010-04-11 02:15:30

标签: jquery

我期待着什么时候去

$.each($(something).find(something), function(){
   $(this).delay(1000).fadeOut();
});

然后对于每个匹配元素,我会在它消失之前得到第二个延迟。但我得到的是延迟的第二个,然后一切都消失了。凌晨3点,我想不到。请帮忙

3 个答案:

答案 0 :(得分:4)

这将起作用,使用jQuery对象作为参数调用它:

function fadeAll(elems) {
    var i=-1;
    function next() {
        i = i+1;
        if (i < elems.length)
            $(elems[i]).delay(1000).fadeOut(next);
    }
    next();
}

您可以在工作中看到它here

答案 1 :(得分:1)

如果我正确地解释你的问题,你希望事情在一秒钟内消失吗?如果是这样,你想要的是$(this).fadeOut(1000);,它设定了淡入淡出的持续时间;执行delay(1000)只需等待第二个,然后就会启动fadeOut()操作。

答案 2 :(得分:1)

这应该是基本的想法:

var set = $(something).find(something);
var delayFade = function(){
     $(this).delay(1000).fadeOut(400, nextDelayFade);
};
var i = 0;
var nextDelayFade = function()
{
  if(i < set.length)
  {
    $(set[i++]).each(delayFade);
  }
};
nextDelayFade();