我在一个脚本上遇到了一些问题
我不明白为什么我的计时器仍然继续运行,而“分钟”和“秒”=== 0秒的事情,如果我重新加载我的计时器离开的页面。
let get_sec = sessionStorage.getItem('sec_storage');
let get_min = sessionStorage.getItem('min_storage');
if (!get_sec && !get_min){
//Sessionstorage vide
secondes = 10;
minutes = 0;
}
let interval = setInterval(function () {
secondes--;
sessionStorage.setItem('sec_storage', get_sec);
sessionStorage.setItem('min_storage', get_min);
$('#count-timer').text('Expiration in : ' + minutes + ' minutes ' + secondes + ' secondes ');
if (secondes === 0) {
minutes--;
secondes = 59;
}
if(minutes <= 0 && secondes <= 0){
clearInterval(interval);
sessionStorage.removeItem('sec_storage');
sessionStorage.removeItem('min_storage');
$('#count-timer').text('Sorry, reservation expired');
}
}, 1000);发布于 2018-02-05 23:45:21
在这些区块中
if (secondes === 0) {
minutes--;
secondes = 59;
}
if(minutes <= 0 && secondes <= 0){
clearInterval(interval);
sessionStorage.removeItem('sec_storage');
sessionStorage.removeItem('min_storage');
$('#count-timer').text('Sorry, reservation expired');
}如果secondes值为=== 0,则将其更改为59。因此,在您的最后一个if中,secondes永远不会小于或等于0,并且永远不会调用clearInterval(interval);
在您的第一个if块中添加此验证
if ((minutes > 0) && (secondes === 0)) {
minutes--;
secondes = 59;
}https://stackoverflow.com/questions/48626167
复制相似问题