我有一个动画设置为在超时后播放。该动画在完成后在不同的元素上重复。我正在利用animate
方法的回调函数来启动下一个动画。我提取的代码如下所示:取消/停止在jQuery/Javascript中执行回调函数
function fancyAnimation() {
// Get a random object property, which is actually the id for a dot
var id = getRandomNumber(1, 100);
// Apply an effect to the dot
$('#test' + id).effect(
'pulsate',
{ times : 3 },
1000,
fancyAnimation
);
}
在点击事件中,我希望动画停止。在任何时候,“fancyAnimation”函数都是排队等待运行的,它只是一次又一次地排队等等。
有没有办法阻止这个函数执行,从而结束某个事件的无限循环?如果是这样,你会如何做到这一点?
非常感谢!
编辑:根据请求,启动fancyAnimation
的代码。
function initiateFancyAnimation() {
animation_timeout = setTimeout("fancyAnimation()", animation_interval);
}
显示我们调用'fancyAnimation代码()'。 –
@MattBall - 启动代码在那里。在这种情况下,这应该不重要;然而,因为我只是在排队后寻找一种方法来停止“fancyAnimation”。我不确定没有重构就有可能。 – tollmanz
在调用新的递归之前,fancyanimation()中的控制语句(if)会起作用。例如:一个布尔变量,通过超时事件设置为true,通过点击事件设置为false。作为评论发布,因为我不知道这是否可能在JavaScript中。 – supertopi