나는 일종의 JS 초보자이며 주어진 시간 후에 카운트 다운 타이머를 시작한다. 기본적으로 사용자가 버튼을 클릭하면 시계가 시작되고 첫 번째 타이머가 만료되면 두 번째 시계가 시작됩니다. 나는 "setInterval"이 이것을 달성하는 가장 좋은 방법이라는 것을 이해한다. 내가 직면하고있는 주요 문제는 두 번째 타이머가 화면에 나타나지만 카운트 다운을 시작하지 않는다는 것입니다. setInterval 내에서 setInterval을 실행하려고하기 때문에 이것이 확실하다고 생각하지만 확실하지 않습니다. 또한 리드 타이머는 0 대신 1로 "삑"소리를냅니다. 코드는 다음과 같습니다. 양식 버튼을 누르면 카운트 다운 기능이 시작됩니다.카운트 다운 타이머, setInterval 내의 setInterval?
<script>
function countdown(form){
lead = form.leadseconds.value;
cd = form.cdseconds.value;
startLeader = setInterval(leadtimer, 1000);
}
function leadtimer(){
if (lead > 0){
document.getElementById("leadtime").innerHTML = lead;
lead--;
}
if (lead == 0){
document.getElementById("leadtime").innerHTML = "beep";
startTimer = setInterval(cdtimer, 1000);
clearInterval(startLeader);
}
}
function cdtimer(){
if (cd > 0){
document.getElementById("cdtime").innerHTML = cd;
lead--;
}
if (cd == 0){
document.getElementById("cdtime").innerHTML = "beepbeep";
clearInterval(startTimer);
}
}
</script>
어떤 도움을 주시면 감사하겠습니다. 감사!
왜 if (cd> 0) {lead--; }'? – leaf
글로벌 vars를 어딘가에 선언 했나요? ('lead','cd','startLeader','startTimer')? – leaf
당신은 그것을 얻었다! cdtimer 함수에서 잘못된 변수를 줄였습니다. 감사!!! – Codey