Pemasa terbina dalam dalam blok kod. Sekarang pemasa bermula/berhenti melalui butang, tetapi saya memerlukannya untuk dijalankan apabila butang ruang dilepaskan, dan saya memerlukannya untuk berhenti apabila butang ruang ditekan. Saya telah cuba menyelesaikan masalah ini selama kira-kira dua hari sekarang dan sepertinya tidak dapat mencari penyelesaian. Setiap kali saya cuba menghentikan pemasa, apabila saya melepaskan butang ruang, pemasa bermula semula.
let startDate; let timeoutID = 0; let time; let started = false; let timerRunOut = false; function start(){ if(!started){ startDate = new Date(); startTimer(); started = true; } } function stop(){ if(started){ clearTimeout(timeoutID); started = false; } } function startTimer () { let current = new Date(); time = (current - startDate); let timeMS = time; let ms = timeMS % 1000; timeMS = (timeMS - ms) / 1000; let seconds = timeMS % 60; timeMS = (timeMS - seconds) / 60; let mins = timeMS % 60; if(seconds < 10){ document.getElementById("seconds").innerText = "0" + seconds; }else{ document.getElementById("seconds").innerText = seconds; } if(mins > 0 && mins < 10){ document.getElementById("minutes").innerText = "0" + mins + ":"; }else if(mins > 0){ document.getElementById("minutes").innerText = mins + ":"; }else{ document.getElementById("minutes").innerText = ""; } if(ms < 10){ document.getElementById("tens").innerText = "00" + ms; } else if(ms < 100){ document.getElementById("tens").innerText = "0" + ms; }else{ document.getElementById("tens").innerText = ms; } timeoutID = setTimeout(startTimer, 0); }
Saya cuba menambah pendengar acara dan menambah syarat tetapi tiada yang berjaya, apabila pemasa berhenti ia sentiasa bermula semula apabila saya melepaskan butang ruang.
Saya menemui penyelesaiannya dan saya perlu memberi sedikit penghargaan kepada Andre yang membantu saya memikirkan perkara ini.