为什么我必须点击两次才能启动计时器? 有时它第一次工作,有时不工作。当我清除缓存时,我需要点击两次。 我阻止了......
我的代码
var COUNT_START = 10 * 1 * 60;
var count = COUNT_START;
var playing = false;
var play = document.getElementById('Reservation');
var reset = document.getElementById('annuler');
$('#count-timer').hide();
play.onclick = function () {
if ((!playing) && (sessionStorage.length > 0) && (empty > 5)) {
playing = true;
$('#count-timer').fadeIn(1000);
}
count = COUNT_START;
};
reset.onclick = function () {
if (playing) {
playing = false;
}
sessionStorage.clear('nom_station');
if (sessionStorage.length > 1) {
$('#title-reservation').text('Votre réservation a bien été annulée');
}
count = COUNT_START;
};
function countdown() {
displayTime();
if (count == 0) {
playing = false;
sessionStorage.clear('nom_station');
$('#title-reservation').text('Votre réservation a expirée')
$('#count-timer').fadeOut(1000);
} else if (playing) {
setTimeout(countdown, 100);
count--;
} else {
setTimeout(countdown, 100);
}
}
countdown();
function displayTime() {
var mill = count;
var sec = Math.floor(mill / 10);
var hours = Math.floor(sec / 3600);
sec -= hours * (3600);
var mins = Math.floor(sec / 60);
sec -= mins * (60);
if (mins > 1) {
document.getElementById('count-timer').innerHTML = 'Votre réservation expire dans : ' + LeadingZero(mins) + ' minute(s) ' + ' et ' + LeadingZero(sec) + ' seconde(s) ';
}
else {
document.getElementById('count-timer').innerHTML = 'Votre réservation expire dans : ' + hours + ':' + LeadingZero(mins) + ':' + LeadingZero(sec);
}
}
function LeadingZero(Time) {
return (Time < 10) ? "0" + Time : +Time;
}
第二次,我需要在sessionStorage中保存我的计时器,这样做的最佳方法是什么? 如果用户refesh页面,计时器仍然继续。 谢谢:))
答案 0 :(得分:0)
第一次单击时绑定侦听器,然后它开始工作。这就是为什么需要两次