【问题标题】:logic behind $.each and loops in jquery$.each 背后的逻辑和 jquery 中的循环
【发布时间】:2011-08-21 04:59:42
【问题描述】:

我一直在尝试为一个页面创建一个推荐部分,该部分将具有幻灯片fadeIn()、fadeOut() 效果。我让它与一个插件一起工作,但我真的很想了解它是如何工作的,以便在未来进行定制。

我看到它在某种程度上如何与添加/删除类一起工作,但是循环是否可能?我对javascript如何在循环迭代之间不暂停有很多麻烦。以如下代码为例:

    <div class="container"></div>

   var jedi = new Array();
  jedi[0]= 'Anakin';
  jedi[1]= 'ObiWan';
  jedi[2]= 'Jacen Solo';

  $.each(jedi,function(counter,value){

    $('.container').append('<p class="blue">' + jedi[counter] + '</p>').children().fadeIn(800*counter);
    $('.container').children().fadeOut(800);
    //alert(value);

     })

这里也是 jsfiddle:http://jsfiddle.net/jpmMR/

我想淡入一个角色名称,然后淡出,然后是下一个人,依此类推。但是发生的事情是一团糟。如果这是可能的,有人可以告诉我它是如何可能的吗?另外,如果不是太麻烦,他们能否向我解释一下 JS 在几毫秒内完成一个循环这一事实的“方法”和“原因”。如果没有更多麻烦,请像我 9 岁的孩子一样用英语解释。

还可以循环 $.each 吗? 提前非常感谢。这一直在杀死我。

【问题讨论】:

    标签: jquery loops slideshow each


    【解决方案1】:

    你也可以做这样的事情......虽然如果你想做其他链接动画,它就没有那么灵活了。

    http://jsfiddle.net/jpmMR/1/

    【讨论】:

    • 非常感谢。但我仍然不完全清楚为什么你的一次处理一个,而我的一次运行。是不是你的设置是一次只有一个

      存在?我不明白为什么我没有为每个数组索引执行任务。

    【解决方案2】:

    与接受的答案here 类似,您将不得不使用回调。 each() 函数对每个元素都无延迟地运行,因此会导致它们异步运行。

    【讨论】:

      【解决方案3】:

      如果要链接动画,则必须在第一个的完成功能上启动第二个,依此类推。因为它是你一次运行所有的动画。您可以在relevant jQuery documentation 中查看动画完成功能的工作原理。

      或者,您可以在 jQuery 中设置一个动画队列,以便每个队列依次运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 2013-01-26
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多