javascript - setTimeout/clearTimeout 问题

标签 javascript jquery timer settimeout

我尝试制作一个页面以在例如之后转到起始页。 10 秒不活动(用户没有点击任何地方)。其余部分我使用 jQuery,但我的测试函数中的 set/clear 是纯 javascript。

在我的沮丧中,我最终得到了类似这个函数的东西,我希望我可以在页面上的任何点击时调用它。计时器启动正常,但不会在单击时重置。如果该函数在前 10 秒内被调用 5 次,则会出现 5 次警报...没有 clearTimeout...

function endAndStartTimer() {
    window.clearTimeout(timer);
    var timer;
    //var millisecBeforeRedirect = 10000; 
    timer = window.setTimeout(function(){alert('Hello!');},10000); 
}

有没有人有几行代码可以解决这个问题? - 在任何点击停止时,重置并启动计时器。 - 当定时器命中时,例如。 10 秒做某事。

最佳答案

您需要在函数的外部声明timer。否则,您会在每次函数调用时获得一个全新的变量。

var timer;
function endAndStartTimer() {
  window.clearTimeout(timer);
  //var millisecBeforeRedirect = 10000; 
  timer = window.setTimeout(function(){alert('Hello!');},10000); 
}

关于javascript - setTimeout/clearTimeout 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015319/

相关文章:

javascript - 褪色图像简单幻灯片 javascript/html

javascript - try-catch 是为了防止还是处理错误? (在javascript中)

ajax - 使用 jquery 使用 $.post() 触发下载和 .click 事件的 href 链接

javascript - 在 HTML 中显示 Ajax 响应

c# - ThreadAbortException 是否仍然强制执行 finally (try/catch) 部分中的代码?

javascript - 如何使用 fetch.response.json() 的 reviver 函数

javascript - Mootools:拖放问题

jquery - JQuery Mobile 中的 Accordion 折叠/展开全部

mvvm - 带有Prism的MVVM中的DispatcherTimer?

c - disable_local_irq 和内核定时器