如何在jQuery中编写一个循环,等待每个函数在继续循环之前完成

前端之家收集整理的这篇文章主要介绍了如何在jQuery中编写一个循环,等待每个函数在继续循环之前完成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请原谅我,如果这是一个明显的.

我有一个未知数量的元素在一个页面上,我需要循环一个一次,并做的东西.但是,我需要循环暂停,直到元素上使用的功能已经完成,然后继续下一次迭代.

我尝试在$.each循环中执行此操作,但是它很快就关闭了命令,完成了等待完成.

有任何想法吗?

$('elem').each(function(){
    $(this).fadeIn().wait(5000).fadeOut();
});

这是我有的,很简单.
我从这里得到了wait()函数jquery cookbook site.

问题是,循环不会等待 – 实际的命令按照预期工作,只是他们一下子掉下来.

任何帮助赞赏,谢谢.

编辑:执行完之后,我可能想再次执行循环,以便elems的列表将按顺序再次淡入/淡出

EDIT2:自从获得了1.4.2的jQuery库,使用的是1.3.2,因此是自定义的wait()函数.现在用lobstrosity提到的delay().
管理在一起接近我所需要的东西从他的答案,感谢lobstrosity :).

解决方法

首先,jQuery 1.4添加delay功能,我认为这是你的自定义等待实现.

使用延迟,您可以通过使用每个回调的第一个参数作为初始延迟的乘数来排除每个元素“等待”上一个元素的功能.喜欢这个:

var duration = 5000;

$('elem').each(function(n) {
    $(this).delay(n * duration).fadeIn().delay(duration).fadeOut();
});

所以第一个元素会马上消失.第二个将在5000毫秒后消失.万分之三以后等等.请记住,这是伪造它.每个元素实际上并不等待上一个元素完成.

猜你在找的jQuery相关文章