delay - 在jQuery中,Multiselector不会同时执行动画

  显示原文与译文双语对照的内容
0 0

当我运行时


$("[id^=menuItem]").fadeOut(1000);

淡出是同时对所有的组件。 但是,我执行的bore循环执行其他元素,完成这些元素之后,我希望在完成这些任务的同时将它们全部淡出。


var i;
for(i = 1; i <= 6; i++)
 $("div#item" + i).delay(i * 1000).fadeIn(1500);
$("[id^=item]").fadeOut(400);

由于某些原因,淡出开始于第二个元素之前,第二个元素是在第三个 等等 创建一个非常酷的效果之前开始的,但这不是我在项目中所需要实现的。

为什么会发生?

我想答案是,最终的淡出将在每个组件完成初始衰落后立即开始。 在这种情况下,我的问题将被转化为如何延迟multiselected淡出的执行直到某个特定的东西完成( 例如 ) 。 最后一项已经消失了。

时间: 原作者:

0 0

它可能与不同的组件在不同时间准备下一步的事实有关。 可能我应该在淡入淡出后使用回调函数。 当然,这将执行整个回调回调,因此需要使用 $.when/.then 语法。

原作者:
...