繁体   English   中英

setInterval 调用 function 的问题

[英]Problem with setInterval to call function

我试图让一个简单的脚本工作,但我一定做错了什么,因为它不工作。 我只想设置一个调用 function 的间隔时间。 Preciate一些帮助,也许不是最好的解决方案。 但我对此并不陌生。

$(document).ready(function() {

startInterval(); // activate timer

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

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

});

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

// 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);
}

推理如下:如果你直接传递一个function,它会调用它。 但是,如果您传递一个字符串,它将在超时时间到时对其进行评估 - 在您的情况下返回eval ,在我的第二种情况下返回评估的 function (注意括号)

删除“”,使其成为对 function 的引用。

function startInterval() {
  var t = setInterval(autoSave, 20000);
  //                  ^now you have a reference to
  //                   autoSave and setInterval knows
  //                   what to execute
}

1)更好的做法是使 t - 全局,否则它将无法在 startInterval() function 之外访问。 但是你需要它来清除间隔

即声明 var t; function startInterval();

2) 考虑: t = setInterval('autoSave()', 20000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM