JQuery使用each()作为每个循环的经典而不是一次全部

我正在尝试遍历一组div标签,并逐个淡入淡出.
到目前为止,使用.each()运算符,它会立即执行所有操作.
你如何使用.each()作为每个循环的更经典?

这是我的JQuery代码片段,目前它将所有div标签一并一个地淡入淡出.

$("document").ready(function() {   
// all div tags are hidden at start 

    $(".myclass").each(function (i) {
      var $div = $(this);
      showDiv($div);
      hideDiv($div);
});

function showDiv(theDiv)
{
      $(theDiv).fadeIn(4000);
}

function hideDiv(theDiv)
{
       $(theDiv).fadeOut(4000);
}     
});

谢谢你考虑这个问题,

最佳答案
这不是关于使用.each()与plain for循环.问题是动画是通过超时处理的(由jQuery管理).在动画发生之前,立即返回.fadeIn()和.fadeOut()的调用.

您可以为每个fadeIn()添加一些延迟,或者您可以以不同方式构造代码

$("document").ready(function() {   
  var divs = $('.myclass'),i = 0;
  function reveal() {
    if (i === divs.length) return;
    divs.eq(i).fadeIn(4000,function() {
      divs.eq(i).fadeOut(4000,function() {
        i++;
        setTimeout(reveal,0);
      });
    });
  }
  setTimeout(reveal,0);
});

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...