다중 타이머 질문
본문
타이머가 여러개 있고 한개의 스크립트로 돌리면
킬때마다 시간이 빨라지고 한개가 끝나면 멈춰버리는 현상이 있습니다.
이런경우에는 어떻게 해결 해야 될까요..
<script>
time = 300; //45*60*10;
var running = 0;
function increment(op,sp){
if(running == 1){
setTimeout(function(){
time--;
var mins = Math.floor(time/10/60);
var secs = Math.floor(time/10 % 60);
var hours = Math.floor(time/10/60/60);
var tenths = time % 10;
if(mins < 10){
mins = "0" + mins;
}
if(secs < 10){
secs = "0" + secs;
}
if(time <= 0) {
//result();
Myaudio.play();
document.getElementById(sp).style.backgroundColor = "red";
document.getElementById(sp).style.borderColor = "red";
reset();
}
document.getElementById(op).innerHTML = mins + ":" + secs ;
increment(op,sp);
},100)
}
}
function startPause1(ch,op,sp){
running = 1;
increment(op,sp);
document.getElementsByClassName(ch).innerHTML = "Pause";
document.getElementById(sp).style.backgroundColor = "green";
document.getElementById(sp).style.borderColor = "green";
}
function reset(op,sp){
running = 0;
time = 300; //45*60*10;
document.getElementsByClassName(ch).innerHTML = "Start";
document.getElementById(op).innerHTML = "00:00";
document.getElementById(sp).style.backgroundColor = "red";
document.getElementById(sp).style.borderColor = "red";
}
</script>
답변 3
변수 time, running을 같이 사용하는군요. 개별 사용하도록 바꾸면 되겠네요.
increment 함수가 재귀함수로 되어 있어서 그런거 아닌가요?
1개 만 누를경우 정상적으로 이용가능한데
2개이상 누를경우 오작동이 발생되됩니다.
도움이 필요합니다..ㅠㅠ
답변을 작성하시기 전에 로그인 해주세요.