
이벤트를 발생시킨 요소와 발생한 이벤트에 대한 정보를 제공하는 객체
이벤트가 발생하면 동적으로 생성되며 이벤트 핸들러의 인자로 들어간다.
실제로 이벤트를 발생시킨 요소
이벤트에 바인딩된 DOM 요소. 즉 addEventListenr 앞에 기술된 객체를 가리킨다.
<body>
<div class="container">
<button id="btn1">Hide me 1</button>
<button id="btn2">Hide me 2</button>
</div>
<script>
const container = document.querySelector('.container');
function hide(e){
e.target.style.visibility = 'hidden';
if(e.currentTarget === e.target)
console.log('You Clicked container');
else
console.log('You Clicked btn');
if(e.target===this)
console.log('same');
else
console.log('different');
}
container.addEventListener('click', hide); // 이벤트 위임으로 버튼
</script>
</body>
container 부분 클릭시

button 클릭시

이벤트 위임이란 다수의 자식 요소에 모두 이벤트 핸들러를 바인딩하는 대신 하나의 부모 요소에 이벤트 핸들러를 바인딩 하는 방법이다.
이벤트 흐름상에서 어느단계에 있는지 반환
0 : 이벤트 없음 / 1 : 캡처링 단계 / 2 : 타깃 / 3 : 버블링 단계
발생한 이벤트의 종류 반환
발생 이벤트의 키 번호 반환
키보드와 관련된 이벤트 발생시 사용한다.
이벤트의 기본 동작을 중단시킨다.
<body>
<div class="container">
<a href="https://google.com">google</a>
</div>
<script>
const a =document.querySelector('a');
a.addEventListener('click',(event)=>{
event.preventDefault();
console.log(event.type); // click
})
</script>
</body>
한 요소의 이벤트가 처리된후 그 이벤트가 부모 요소로 전달되는 것(버블링)을 중단 시키는 메소드
<body>
<p>버튼을 클릭하면 이벤트 전파를 중단한다. <button>버튼</button></p>
<script>
const body = document.querySelector('body');
const para = document.querySelector('p');
const button = document.querySelector('button');
body.addEventListener('click', function () {
console.log('Handler for body.');
});
para.addEventListener('click', function () {
console.log('Handler for paragraph.');
});
button.addEventListener('click', function (event) {
console.log('Handler for button.');
// 이벤트 전파를 중단한다.
event.stopPropagation();
});
</script>
</body>
