为什么我在《公安条例》中的计时器不';不行?(javascript)
我在程序中创建了一个计时器,它可以工作为什么我在《公安条例》中的计时器不';不行?(javascript),javascript,timer,Javascript,Timer,我在程序中创建了一个计时器,它可以工作 ```let startMinutes = 1; let time = startMinutes * 60; let btnTimer = document.getElementById('btn-signer'); const countdownElt = document.getElementById('countdown'); let interval = setInterval(updateCountDown, 1000); function s
```let startMinutes = 1;
let time = startMinutes * 60;
let btnTimer = document.getElementById('btn-signer');
const countdownElt = document.getElementById('countdown');
let interval = setInterval(updateCountDown, 1000);
function startTimer() {
interval = setInterval(updateCountDown, 1000);
}
btnTimer.addEventListener("click", function () {
startTimer()
});
function updateCountDown() {
const minutes = Math.floor(time / 60); //nombre entier
let seconds = time % 60; //reste division
seconds = seconds < 10 ? '0' + seconds : seconds;
countdownElt.innerHTML = `Temps restant : ${minutes}min ${seconds}sec`;
time--;
if (minutes <= 0 && seconds <= 0) {
clearInterval(interval);
countdownElt.innerHTML = "Temps écoulé, veuillez réserver à nouveau.";```
``让startMinutes=1;
让时间=开始分钟*60;
让btnTimer=document.getElementById('btn-signer');
const countdownlt=document.getElementById('countdown');
let interval=setInterval(updateCountDown,1000);
函数startTimer(){
间隔=设置间隔(更新计数,1000);
}
btnTimer.addEventListener(“单击”,函数(){
startTimer()
});
函数updateCountDown(){
const minutes=Math.floor(time/60);//nombre entier
设秒=时间%60;//reste除法
秒=秒<10?'0'+秒:秒;
countdownElt.innerHTML=`Temps restant:${minutes}min${seconds}sec`;
时间--;
如果(我想你指的是OOP
(指类、继承等)不是“POO”——尽管我相信许多坚定的函数式编程倡导者可能不同意;)是的,你是对的,我在Javscript中使用object,是的,它是英语的OOP,谢谢:)我的英语现在太差了^^@KarineGRASCIA你可以在这里使用我的快速OOP计时器示例来帮助你。谢谢:)我会看到的!从构造函数中删除设置间隔
,并在startTimer
中使用箭头函数作为参考对于间隔:setInterval(()=>{this.updateCountDown();},1000);
,这是在updateCountDown
方法中获得正确的this
所需要的。我想你的意思是OOP
(用于引用类、继承等)而不是“POO”-虽然我相信许多坚定的函数式编程倡导者可能不同意;)是的,你是对的,我使用Javscript中的object,是的,它是英语的OOP,谢谢:)我的英语现在太差了^^^@KarineGRASCIA你可以在这里使用我的快速OOP定时器示例来帮助你。谢谢:)我会看到的!删除setInterval
from构造函数,并在startTimer
中使用箭头函数作为间隔的参考:setInterval(()=>{this.updateCountDown();},1000);
,这是在updateCountDown
方法中获得正确的this
所需的。
``` class countDown {
constructor() {
this.btnTimer = document.getElementById('btn-signer');
this.countdownElt = document.getElementById('countdown');
this.startMinutes = 1;
this.timeSec = this.startMinutes * 60;
this.interval = setInterval(this.updateCountDown, 1000);
this.btnTimer.addEventListener('click', () => this.startTimer());
this.updateCountDown();
}
startTimer() {
this.interval = setInterval(this.updateCountDown, 1000);
//console.log(this.interval);
}
updateCountDown() {
let minutes = Math.floor(this.timeSec / 60); //nombre entier
let seconds = this.timeSec % 60; //reste division
seconds = seconds < 10 ? '0' + seconds : seconds;
document.getElementById('countdown').innerHTML = `Temps restant : ${minutes}min ${seconds}sec`;
this.timeSec--;
if (minutes <= 0 && seconds <= 0) {
clearInterval(this.interval);
this.countdownElt.innerHTML = "Temps écoulé, veuillez réserver à nouveau.";
}
}
}```