addEventListener
메서드를 사용하여 이벤트 리스너를 등록버블링(Bubbling): 이벤트가 가장 하위 요소에서 시작하여 상위로 전파
<aside> 🕶️
tip: 비누방울이 아래에서 위로 올라가는 모습을 상상해보세요. 이벤트가 아래에서 위로 전파되는걸 버블링이라고 한답니다!
</aside>
캡처링(Capturing): 이벤트가 최상위 요소에서 시작하여 하위로 전파
type
, target
, currentTarget
, preventDefault()
, stopPropagation()
// DOM 이벤트 모델
document.getElementById('myButton').addEventListener('click', function(event) {
console.log('Button clicked!');
console.log('Event type:', event.type);
console.log('Target element:', event.target);
});
// 이벤트 버블링 예시
document.body.addEventListener('click', function(event) {
console.log('Body clicked!');
}, false);
// 이벤트 캡처링 예시
document.body.addEventListener('click', function(event) {
console.log('Body clicked (capture phase)!');
}, true);
// 이벤트 객체의 주요 속성 활용
document.getElementById('myInput').addEventListener('keydown', function(event) {
console.log('Key pressed:', event.key);
console.log('Ctrl key pressed:', event.ctrlKey);
if (event.key === 'Enter') {
event.preventDefault(); // 기본 동작 방지
}
});
addEventListener
를 사용한 이벤트 리스너 등록false
와 true
옵션)type
, target
, key
, ctrlKey
)preventDefault()
를 사용한 기본 동작 방지event.target
을 사용하여 실제 이벤트가 발생한 요소를 식별