[英]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
对于函数而言是局部的; 因此,每次调用showCounter
, timeout
都是undefined
。 将变量声明移出函数:
var timeout;
function showCounter() {
// ...
timeout = // NO VAR! ...
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.