DA.*_*DA. 2 javascript recursion
使用jQuery,我构建了一个图像/幻灯片旋转器.基本设置是(伪代码):
function setupUpSlide(SlideToStartWith){
var thisSlide = SlideToStartWith;
...set things up...
fadeInSlide(thisSlide)
}
function fadeInSlide(thisSlide){
...fade in this slide...
fadeOutSlide(thisSlide)
}
function fadeOutSlide(thisSlide){
...fade out this slide...
thisSlide.fadeOut(fade, function() {
var timeout2 = setTimeout(setupUpSlide(nextSlide),100);
}
Run Code Online (Sandbox Code Playgroud)
我调用第一个函数并传入一个特定的幻灯片索引,然后它调用函数链,然后再调用第一个函数再次传入下一个索引.然后无限重复(当它到达最后一项时重置索引).
这很好用.
我现在要做的是允许某人通过点击特定幻灯片编号来覆盖幻灯片放映.因此,如果显示幻灯片#8并且我单击#3,我希望递归停止,然后调用幻灯片#3中传递的初始函数,然后,幻灯片将再次启动该过程.
但我不知道该怎么做.如何正确"打破"递归脚本.我应该创建某种全局'监视'变量,如果在任何时候'true'将返回:false并允许新函数执行?
更新:添加了更详细的代码显示setTimeout调用