setInterval调用函数的问题

3D-*_*tiv 1 javascript jquery

我试图让一个简单的脚本工作,但在某个地方,我一定做错了,因为它不起作用!我只想设置调用函数的间隔时间.提供一些帮助.也许不是最好的解决方案,但我是新手.

$(document).ready(function() {

startInterval(); // activate timer

function startInterval() {
var t = setInterval("autoSave", 20000);
}

function autoSave() {
alert("test");
}

});
Run Code Online (Sandbox Code Playgroud)

jos*_*row 6

这些中的任何一个都可以,但不是你的

// Pass the real function
function startInterval() {
  var t = setInterval(autoSave, 20000);
}

// THIS MAY NOT WORK
// eval
function startInterval() {
  var t = setInterval("autoSave()", 20000);
}
//

// Anonymous function
function startInterval() {
  var t = setInterval(function() { autoSave(); }, 20000);
}
Run Code Online (Sandbox Code Playgroud)

这是推理:如果你直接传递一个函数,它会调用它.但是,如果你传递一个字符串,它会eval在超时结束时显示它 - 它会在你的情况下返回一个函数,而在我的第二种情况下它将返回被评估的函数(注意括号)