簡體   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