[英]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.