[英]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.