函数未定义错误

时间:2013-08-02 14:39:17

标签: javascript recursion

我正在尝试创建一个自动更改的“旋转”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

提前致谢

1 个答案:

答案 0 :(得分:1)

setInterval()中使用字符串不是很好的做法。请改用匿名函数:

setInterval(function() {
    launchTimedRotator();
}, 3000);

虽然setInterval似乎不适合它。它最终将创建许多间隔范例。也许您打算使用setTimeout代替?

通常,您可以使用setInterval()setTimeout();

获得相同的效果

如果是setInterval,则只有setInterval(function() {}, 3000),如果是setTimeout,则

function runTimeout() {
    setTimeout(function() {
        runTimeout();
    }, 3000);  
}

我个人更喜欢setTimeout()更可靠和易于管理。