我有这个功能:
original = 0;
original = original+1;
setInterval("dis"+original+"();", 2400);
但是有一个问题,每次调用它似乎都会再次调用同一个函数......它们并没有调用单个函数。
感谢您的帮助。
答案 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();