>  Q&A  >  본문

setTimeout 및 addEventListener 관련 문제

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

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>

hhhh1581일 전1174

모든 응답(1)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2020-07-17 19:57:46

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

    회신하다
    0
  • 취소회신하다