ReferenceError SetInterval未定义

时间:2013-12-16 15:04:20

标签: javascript undefined setinterval

我在StackOverflow上看到的几乎所有SetInterval错误都是由于将函数名称作为“字符串”传递,但也许我仍然缺少某种变量范围问题。请指教!

我正在创建一个具有暂停和播放功能的幻灯片。在播放时,我希望幻灯片每3秒前进一次。但是,执行一次后,启动NextSlide函数的SetInterval失败。

我已经尝试过了......

SetInterval("nextSlide()", 3000)
SetInterval(nextSlide(), 3000)
var t = SetInterval(nextSlide(), 3000)
var t = SetInterval(function(){nextSlide(), 3000)

......每次失败。我在这里缺少什么?

var slide_1 = "slide_1";
var slide_2 = "slide_2";
var slideNum = 0;
var odd = true;
var totalMax = 6;
var busy = false;

var allSlides = new Array();
allSlides[0] = "test_01";
allSlides[1] = "test_02";
allSlides[2] = "test_03";
allSlides[3] = "test_04";
allSlides[4] = "test_05";
allSlides[5] = "test_06";
allSlides[6] = "test_07";

function PlaySlide(){
var t = SetInterval(nextSlide(),3000)
document.getElementById("play").style.visibility = "hidden";
document.getElementById("pause").style.visibility = "visible";
}

function nextSlide(){
if(slideNum < totalMax && !busy){
busy = true
document.getElementById("loading").style.zIndex = 4;
slideNum = slideNum + 1
var slide = allSlides[slideNum]
var link = "https://dl.dropboxusercontent.com/u/..." + slide + ".jpg"
odd = !odd
if(odd){document.getElementById(slide_1).src = link} //which <img>.onLoad lauches a fadeIn()
else{document.getElementById(slide_2).src = link}
}
}

2 个答案:

答案 0 :(得分:7)

var t = SetInterval(nextSlide(),3000)
        ^                    ^^

你有2个问题

没有SetInterval,s是小写的。其次,您正在调用函数nextSlide(),而不是分配它

var t = window.setInterval(nextSlide, 3000);

答案 1 :(得分:0)

请使用"setInterval"代替“SetInterval”并查看结果。