微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

setInterval调用函数时出现问题

如何解决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 举报,一经查实,本站将立刻删除。