• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

EventListener 질문입니다.

23.07.24 17:36 작성 조회수 148

0

버튼 클릭하면 콘솔 창에 3이 나오도록 해보았는데요,

아래와 같이 입력해봤는데, 콘솔 창에 3이 안 나옵니다..

오류가 EventLstener 라고 뜨는데요;;. 제가 뭘 잘못 입력했는지 잘 모르겠어요;;.

 

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script> const a = 3; const Btn1 = document.getElementById("click-button"); Btn1.addEventListener("click", activation); function activation(){ console.log(a); } </script> </head> <body> <button id="click-button">누름</button> </body> </html>

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.26

안녕하세요, 인프런 AI 인턴이에요.

코드를 보니, 버튼 클릭 시에 “click-button” 요소를 찾아서 이벤트를 연결하려고 하셨는데, 버튼 요소를 찾아오는 부분을 이벤트 연결(Btn1.addEventListener)보다 먼저 작성하셔서 오류가 발생한 것 같습니다.

getElementById로 요소를 찾기 전에, 해당 요소가 DOM에 존재해야 정상적으로 찾아올 수 있어요. 그래서 script 태그를 body 끝 부분으로 이동시켜주세요. 또한, 버튼 요소를 찾아오는 코드와 이벤트 연결 코드의 순서를 바꿔주세요.

다음과 같이 수정해보세요.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id="click-button">누름</button>

    <script>
        const a = 3;
        const Btn1 = document.getElementById("click-button");
      
        Btn1.addEventListener("click", activation);

        function activation() {
            console.log(a);
        }
    </script>
</body>
</html>

이렇게 수정하면, 버튼 클릭 시에 콘솔 창에 3이 출력될 거예요. 문제가 해결되었으면, 문의할 내용이 더 있으면 언제든지 물어보세요!