繁体   English   中英

我该如何重置设置超时

[英]How can I reset a settimeout

我在这里尝试了答案: 重置setTimeout ,但它似乎不适用于我。

我正在使用Owl Carousel构建目录查看器。 我有一个设置为在afterMove事件处理程序上关闭的函数,该事件处理程序显示用户所在的页面。 它显示页面计数器,然后设置超时以使其在1秒后淡出。 很多人浏览页面的速度可能比每秒浏览一次的速度更快。 因此,如果再次调用该函数,则需要重置超时。

function showCounter(){
     var $counter = $('#counter');
     //clear timeout
     window.clearTimeout(timeout);
     //Display counter
     $counter.show();
     //set timeout
     var timeout = window.setTimeout(function(){
         $counter.fadeOut(500);
     }, 1000);
}

但是window.clearTimeout(timeout)似乎不起作用,我不确定为什么

谢谢

函数内部的var timeout使timeout对于函数而言是局部的; 因此,每次调用showCountertimeout都是undefined 将变量声明移出函数:

var timeout;
function showCounter() {
  // ...
  timeout = // NO VAR! ...
  // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM