2014-11-04 50 views
0

我期待創建啓動倒數計時器的計時器。代碼工作正常,直到您更改頁面。當定時器運行循環並再次啓動計時器時。JavaScript網站 - 倒數計時器

理想情況下,我希望計時器倒計時,而不管整個域上的頁面。另外,如果點擊$ sessionDecline,我想要一個10分鐘的計時器被調用,否則$ sessionAccept返回到主頁,計數器爲5分鐘。

var SessionTime  = 2000, 
    tickDuration = 1000, 
    $sessionAccept = $('#session--accept'), 
    $sessionDecline = $('#session--decline'); 

if (Modernizr.localstorage && lscache.get('sessionActive') === null){ 

    var myInterval = setInterval(function(){ 

      SessionTime = SessionTime - tickDuration 

     }, 1000), 

     myTimeOut = setTimeout(SessionExpireEvent, SessionTime); 

} else if (Modernizr.localstorage && lscache.get('sessionActive') === true){ 

    SessionTime = 6000; 
    var myInterval = setInterval(function(){ 

      SessionTime = SessionTime - tickDuration 

     }, 1000), 

     myTimeOut = setTimeout(SessionExpireEvent, SessionTime); 

} 

function SessionExpireEvent() { 
    clearInterval(myInterval); 

    $('#timout--popup').addClass('is--loaded'); 

    $sessionAccept.click(function(){ 

     window.location.href = '/'; 

     lscache.set('sessionActive', true); 

     $(this) 
      .closest('.overlay__wrapper') 
      .removeClass('is--loaded'); 
    }); 

    $sessionDecline.click(function(){ 
     lscache.set('sessionActive', false); 

     $(this) 
      .closest('.overlay__wrapper') 
      .removeClass('is--loaded'); 
    }); 
} 

我使用:

jQuery的V1/ls-cache /自定義Modernizr的

回答

0

對不起事先不進行編碼的例子。

我會弄清楚的日期/從現在開始的10分鐘或5分鐘的時間會是什麼,該值寫入一個cookie,你可以在jQuery的做這樣$.cookie("test", 1);

那就從現在開始直到計算毫秒您的目標值並將您的超時設置爲幾毫秒。

在頁面加載時檢查您的cookie是否使用$.cookie("test");(如果已設置)來設置,然後使用該值設置超時時間,如果沒有,則計算您的超時時間並設置cookie。請使用$.removeCookie("test");