我有这个
$('li').each( function() { ...
在这个函数里面有一些动画,
但是这些动画还没有完成
再次调用此函数。
是否有一个切换让.each等待
功能结束?
答案 0 :(得分:1)
您可以将动画放在一个函数中,然后让动画回调再次调用该函数。
function doStuff(){
$('#element').animate({'property':1000},4000, doStuff);
}
答案 1 :(得分:1)
您可以停止动画http://api.jquery.com/stop/或使用动画队列http://api.jquery.com/queue/
每个人都没有任何选项可以等待动画结束。你可以做的是使用“控制”var。在开始动画之前将var设置为true,然后为动画设置回调函数并将var设置为false。当您输入执行动画的代码时,请检查var以查看是否还有待处理的动画。如果有,您可以对动画进行排队。
答案 2 :(得分:0)
没有。动画是异步的。 jQuery将其作为一个单独的进程触发,然后进入列表中的下一个元素。
您需要调整动画以在完成后调用下一个动画
答案 3 :(得分:0)
动画是异步的,但是没有理由为什么你在每个函数中的第一个动作不能成为某种门控机制,有效地防止在动画结束时“取消”它之前再次被触发。 / p>
答案 4 :(得分:0)
Jquery动画是'异步'。它们在被触发时不会停止Javascript引擎。 我能想到等待动画结束的唯一方法是实现可以添加到jquery中的动画调用的回调。
这将迫使您打开.each()调用。