SetInterval保持调用相同的函数

时间:2013-12-15 21:35:49

标签: javascript jquery setinterval

我有这个功能:

original = 0;
original = original+1;
setInterval("dis"+original+"();", 2400);

但是有一个问题,每次调用它似乎都会再次调用同一个函数......它们并没有调用单个函数。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

每次都需要重新生成函数名,因为setInterval没有为您处理 - 它始终运行在设置时传递给它的代码。

这将在全局范围内找到正确的函数(window)并将其命名为:

original = 0;
original = original+1;
setInterval(function(){
    window["dis" + original]();
    original++;
}, 2400);

还需要在setInterval处理程序中增加计数器。

答案 1 :(得分:2)

这是因为original用于构建回调函数名称一次 - 并且只用一次 - 来调用setInterval。顾名思义,setInterval设置一次回调并继续执行,直到您使用clearInterval清除时间间隔。

如果您想更改所调用的方法,可以尝试setTimeout,即:

var original = 0,
    cb = function() {
        ('dis' + original).prototype.call(null);
        original++;
        setTimeout(cb, 2400);
    }
cb();