setTimeout 및 addEventListener 관련 문제
hh
hh 2020-07-12 18:03:35
0
1
1208

이것은 초보가 작성한 코드입니다.

setTimeout을 아무리 오래 설정해도 innerHtml은 최종 결과를 직접 표시합니다.

이게 왜

<!DOCTYPE html>

< ;html>인가요? ;

<head>

<meta charset="utf-8">

<title>루키 튜토리얼(runoob.com)</title>

</head>

< body>

문서에 onmousemove 이벤트 핸들러가 추가되어 문서에서 마우스를 움직일 때 임의의 숫자가 표시됩니다.

이벤트 핸들러를 제거하려면 버튼을 클릭하세요.

<button id='demo1'>나를 클릭하세요</button>

<p id="demo">

<script>

document.getElementById("demo1"). ("클릭", myFunction);

var time = 5;

function myFunction() {

document.getElementById("demo").innerHTML = time;

RemoveHandler(time);

}

함수 RemoveHandler(i) {

i--;

document.getElementById("demo").innerHTML = i;

setTimeout(removeHandler(i),1000);

}

</script>

</body>

</html>

hh
hh

모든 응답(1)
Peter-Zhu

setTime()의 콜백 함수는 비동기적으로 실행됩니다. 메인 호출 스택이 지워진 경우에만 작업 대기열에서 호출 스택에 들어가므로 언급한 상황이 발생합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿