我正在尝试创建一个自动更改的“旋转”DIV。 我有一个函数switchRotator(id),它使用JQuery更改DIV的内容。 以下是导致错误的函数:
function launchTimedRotator(){
//timedSwitch is a boolean value that can be enabled/disabled with buttons
if (timedSwitch) {
if (counter<2) {
counter++;
} else {
counter = 1;
}
switchRotator(counter);
setInterval("launchTimedRotator()",3000);
return null;
}
};
正如你所看到的那样,我试图通过最后调用函数来尝试使用递归。 我在Google Chrome开发人员工具中收到的错误是: 未捕获的ReferenceError:未定义launchTimedRotator
提前致谢
答案 0 :(得分:1)
在setInterval()
中使用字符串不是很好的做法。请改用匿名函数:
setInterval(function() {
launchTimedRotator();
}, 3000);
虽然setInterval
似乎不适合它。它最终将创建许多间隔范例。也许您打算使用setTimeout
代替?
通常,您可以使用setInterval()
和setTimeout()
;
如果是setInterval
,则只有setInterval(function() {}, 3000)
,如果是setTimeout
,则
function runTimeout() {
setTimeout(function() {
runTimeout();
}, 3000);
}
我个人更喜欢setTimeout()
更可靠和易于管理。