.가장 안에 있는 엘리먼트에 이벤트 발생되고 그 상위 이벤트가 동시에 발생된다고면

안에서부터 발생된다.


html 이벤트

body 이벤트

input 이벤트 가 된다고하면 




INPUT HTML capturing

(index):18 INPUT BODY capturing

(index):18 INPUT FIELDSET capturing

(index):18 INPUT INPUT target


<html>

    <head>

        <style>

            html{border:5px solid red;padding:30px;}

            body{border:5px solid green;padding:30px;}

            fieldset{border:5px solid blue;padding:30px;}

            input{border:5px solid black;padding:30px;}

        </style>

    </head>

    <body>

        <fieldset>

            <legend>event propagation</legend>

            <input type="button" id="target" value="target">          

        </fieldset>

        <script>

        function handler(event){

            var phases = ['capturing', 'target', 'bubbling']

            console.log(event.target.nodeName, this.nodeName, phases[event.eventPhase-1]);

        }

//         document.getElementById('target').addEventListener('click', handler, true);

//         document.querySelector('fieldset').addEventListener('click', handler, true);

//         document.querySelector('body').addEventListener('click', handler, true);

//         document.querySelector('html').addEventListener('click', handler, true);

document.getElementById('target').addEventListener('click', handler, false);

document.querySelector('fieldset').addEventListener('click', handler, false);

document.querySelector('body').addEventListener('click', handler, false);

document.querySelector('html').addEventListener('click', handler, false);



//따라서 addEventListener의 3번째 파라미터는 CAPTURING의 기능이듯하다.

        </script>

    </body>

</html>



캡쳐링은 밖에서 안으로

버블링은 안에서 밖으로


'오락기 > js' 카테고리의 다른 글

form  (0) 2017.04.18
prevent event  (0) 2017.04.18
add eventListener  (0) 2017.04.18
property event  (0) 2017.04.18
inline event  (0) 2017.04.18

+ Recent posts