반응형

자바스크립트 개발 환경 Microsoft Visual Studio 2015 버전 HTML 기능 및 Chrome을 이용하고 있습니다.





addEventListener() 메서드는 이벤트 핸들러를 특정 element에 붙일 수 있도록 해준다.


이를통해 많은 이벤트 핸들러를 하나의 element에 추가 할 수 있다.


또한 같은 타입을 가진 핸들러도 계속해서 추가할 수 있다.(예를들면 click같은 이벤트들)


또한 이벤트 리스너들을 HTML element뿐만 아니라 DOM 오브젝트에도 붙일 수 있다.


이벤트 핸들러를 추가 할 수도있지만, 제거 할 수도있다.


바로 예시 코드를 통해 확인해보자.














1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
<html>
<head>
    <title>test title</title>
</head>
 
<body>
    <h2> JavaScript </h2>
 
    <button type="button" id="btn"> << 클릭 >> </button>
    <p id="test"></p>
 
    <script>
        var x = document.getElementById('btn');
        x.addEventListener("click", func1);
        x.addEventListener("mouseover", func2);
        x.addEventListener("mouseout", func3);
 
        function func1() {
            document.getElementById('test').innerHTML += "클릭하셨습니다~" + "<br>";
            x.removeEventListener("click", func1);
            document.getElementById('test').innerHTML +=
                "클릭 이벤트가 삭제되어 클릭해도 \
                그다음부터 값이 나타나지 않습니다." + "<br>";
        }
 
        function func2() {
            document.getElementById('test').innerHTML += "마우스가 버튼위에 왔습니다." + "<br>";
        }
 
        function func3() {
            document.getElementById('test').innerHTML += "마우스가 버튼 밖으로 벗어났습니다." + "<br>";
        }
 
    </script>
 
</body>
</html>
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus




현재 btn이라는 id를 가진 버튼에 3가지의 이벤트 핸들러를 추가했음을 알 수 있다.

click, mouseover, mouseout 3가지인데, 클릭 할때, 마우스가 버튼위에 올려져있을 때, 마우스가 버튼에서 벗어났을 때이다.

클릭할 때는 클릭했다는 메세지를 출력하고, removeEventListener() 메서드를 이용하여 이벤트 핸들러를 제거해주는 방식이다.

그 외에는 마우스가 올라왔는지, 벗어났는지 출력해준다.



반응형