如何解决setInterval调用函数时出现问题
| 我正在尝试使用一个简单的脚本来工作,但是在某个地方我一定做错了什么,因为它不起作用!我只想设置一个调用函数的间隔时间。寻求帮助。也许不是最好的解决方案,但是我对此并不陌生。$(document).ready(function() {
startInterval(); // activate timer
function startInterval() {
var t = setInterval(\"autoSave\",20000);
}
function autoSave() {
alert(\"test\");
}
});
解决方法
1)更好的做法是使t-全局,否则在startInterval()函数外部将无法访问它。但是您需要它来清除间隔
即声明var t;
function startInterval();
之前
2)考虑:t = setInterval(\'autoSave()\',20000);
, 这些中的任何一种都可以,但是您没有
// 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);
}
原因如下:如果直接传递一个函数,它将调用它。但是,如果您传递一个字符串,则在超时时它将向字符串ѭ4倾斜-在您的情况下返回一个函数,在我的第二种情况下返回一个被求值的函数(请注意括号)
, 删除\“ \”,并使其引用该函数。
function startInterval() {
var t = setInterval(autoSave,20000);
// ^now you have a reference to
// autoSave and setInterval knows
// what to execute
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。