一尘不染

setTimeout / clearTimeout问题

javascript

我尝试使页面转到例如eg之后的首页。10秒钟不活动(用户未单击任何位置)。我使用jQuery进行其余操作,但测试功能中的设置/清除是纯JavaScript。

令我沮丧的是,我最终得到了类似该功能的东西,希望我可以在该页面上进行任何单击。计时器可以正常启动,但单击后不会重置。如果在前10秒内调用该函数5次,则将出现5条警报…无clearTimeout

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

有人得到一些可以解决问题的代码行吗?-在任何点击停止时,重置并启动计时器。-当计时器命中时 10sec做点什么。


阅读 279

收藏
2020-05-01

共1个答案

一尘不染

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

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