我正在尝试使用一个简单的脚本,但在某个地方我必须做错了,因为它不起作用!我只想设置调用函数的间隔时间。提供一些帮助。也许不是最好的解决方案,但我是新手。
$(document).ready(function() {
startInterval(); // activate timer
function startInterval() {
var t = setInterval("autoSave", 20000);
}
function autoSave() {
alert("test");
}
});
答案 0 :(得分: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);
}
这是推理:如果你直接传递一个函数,它会调用它。但是,如果你传递一个字符串,它会在超时结束时eval
- 在你的情况下返回一个函数,在我的第二种情况下返回评估函数(注意括号)
答案 1 :(得分:4)
删除“”,并将其作为对该功能的引用。
function startInterval() {
var t = setInterval(autoSave, 20000);
// ^now you have a reference to
// autoSave and setInterval knows
// what to execute
}
答案 2 :(得分:0)
1)更好的做法是使t - global,否则它将无法在startInterval()函数之外访问。但你需要它来清除间隔
即。声明var t;在function startInterval();
之前
2)考虑:t = setInterval('autoSave()', 20000);