代码之家  ›  专栏  ›  技术社区  ›  Ali Habibzadeh

$.each和动画混淆

  •  3
  • Ali Habibzadeh  · 技术社区  · 14 年前

    我在等我走的时候

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

    然后对于每个匹配的元素,在它消失之前,我得到一秒的延迟。但我得到的是一秒钟的延迟,然后一切都消失了。现在是凌晨3点,我想不起来了。请帮助

    3 回复  |  直到 14 年前
        1
  •  4
  •   interjay    14 年前

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

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

    你可以在工作中看到 here .

        2
  •  1
  •   Tim    14 年前

    如果我把你的问题解释对了,你想让事情在一秒钟内消失?如果是的话,你想要的是 $(this).fadeOut(1000); ,它设置淡入的持续时间;执行 delay(1000) 等一下 之前 它开始你的 fadeOut() 行动。

        3
  •  1
  •   Matthew Flaschen    14 年前

    这应该是基本的想法:

    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();