我希望创建一个启动倒数计时器的计时器。代码工作正常,直到您更改页面。当计时器通过循环并再次启动计时器时。
理想情况下,无论整个域上的页面如何,我都希望计时器倒计时。
另外,如果单击$ 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 / custom modernizr
答案 0 :(得分:0)
提前抱歉没有提供编码示例。
我会弄清楚从现在开始的10或5分钟的日期/时间是什么,并将该值写入您可以在jQuery中执行的cookie $.cookie("test", 1);
然后计算从现在到目标值的毫秒数,并将超时设置为那么多毫秒。
在页面加载检查以查看您的cookie是否使用$.cookie("test");
设置(如果已设置),然后使用该值设置超时,如果没有,则计算超时并设置cookie。
还要确保使用$.removeCookie("test");