가위바위보 강의를 보면서 질문이 있습니다.
안녕하세요 제로초님 강의 잘 듣고 있습니다.
가위바위보 강의를 들으면서 코드를 직접 쳐보고 테스트를 해보았는데, 해결되지 않는 부분이 있어서 질문드립니다.
가위,바위,보 버튼을 누를 때 clearInterval을 시키고 1초 딜레이 이후에 인터벌을 다시 실행하는 코드에서 (아래는 깃허브에 제로초님 코드를 가져왔습니다.)
var 인터벌;
function 인터벌메이커() {
인터벌 = setInterval(function () {
if (이미지좌표 === 가위바위보.바위) {
이미지좌표 = 가위바위보.가위;
} else if (이미지좌표 === 가위바위보.가위) {
이미지좌표 = 가위바위보.보;
} else {
이미지좌표 = 가위바위보.바위;
}
document.querySelector('#computer').style.background =
'url(https://en.pimg.jp/023/182/267/1/23182267.jpg) ' + 이미지좌표 + ' 0';
}, 100);
}
인터벌메이커();
document.querySelectorAll('.btn').forEach(function(btn) {
btn.addEventListener('click', function() {
clearInterval(인터벌); // setInterval 중지
setTimeout(function() {
인터벌메이커();
}, 1000);
});
});
이렇게 되어있는데 가위,바위,보 버튼을 연속적으로 빠르게 누르다 보면 인터벌메이커() 함수가 중첩으로 실행이 되어서 결국에는 1초 딜레이 무효화되는 현상을 보게 되었는데 어떻게 하면 제대로 구현할 수 있을지 여쭤봅니다.
제 생각에는 clearInterval 메소드 안에 setTimeout을 넣어봐서 실행하면 되지 않을까 했는데(아래 코드 처럼)
document.querySelectorAll('.btn').forEach(function(btn) {
btn.addEventListener('click', function() {
clearInterval(인터벌, setTimeout(function(){
인터벌메이커();
}, 1000));
});
여전히 안되더라구요
답변 1
iput 입력글자 제한에러...
0
227
0
리팩토링 관련 질문입니다. (자스스톤)
0
276
1
카드 짝맞추기 react-native
0
340
0
필터 메소드 관련 질문입니다.
0
339
1
가위바위보 게임 질문드립니다~
0
204
1
자바스크립트 기초에 관해서 질문있습니다.
0
208
1
질문입니다.
1
359
1
이벤트 리스너 안에서 동작 질문드립니다.
0
325
2
질문드립니다.
0
190
0
안녕하세요 깊은 복사 부분에서 질문 있습니다.
0
245
1
document.createElement('')함수에서
0
249
2
안녕하세요 클로저 부분에서 질문 있습니다.
0
280
1
안녕하세요 제로초님
0
739
1
끝말잇기 화면에 출력 반복문을 이용해서 횟수 제한
0
245
1
안녕하세요 제로초님 질문있습니다
0
317
1
안녕하세요 강의 정말 잘시청하고있습니다.
0
277
3
?
0
152
1
틱택토 게임에서 게임이 끝나고
0
567
1
9 곱하는게 이해가 안 되요~
0
174
1
지뢰찾기 에러잡아내기에서 질문있습니다!
0
459
4
지뢰찾기 에러 관련 질문!
0
484
3
리팩토링에 관한 질문입니다.
0
244
2
Array/Object spread
0
204
1
지뢰찾기게임에서 Math.random() 질문
0
224
1





