JavaScript addEventListener 완벽 가이드
addEventListener
란?
addEventListener
는 JavaScript에서 DOM 요소에 이벤트 리스너를 추가하는 메서드입니다. 이를 사용하면 특정 이벤트가 발생했을 때 실행될 동작(콜백 함수)을 설정할 수 있습니다.
구문
element.addEventListener(event, function, useCapture);
매개변수 설명
- element: 이벤트를 감지할 DOM 요소입니다.
- event: 감지할 이벤트의 종류(예:
"click"
,"keydown"
등). - function: 이벤트가 발생했을 때 실행할 콜백 함수.
- useCapture: (선택적) 이벤트 캡처링 단계에서 이벤트를 처리할지 여부. 기본값은
false
로 버블링 단계에서 이벤트가 처리됩니다.
예제 코드
1. 버튼 클릭 이벤트
<button id="myButton">Click Me!</button>
const button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("Button clicked!");
});
위 코드는 버튼을 클릭했을 때 알림창이 나타나도록 설정합니다.
2. 외부 함수 사용
<button id="myButton">Click Me!</button>
function handleClick() {
alert("Button clicked!");
}
const button = document.getElementById("myButton");
button.addEventListener("click", handleClick);
addEventListener
에 외부 함수를 전달하여 코드 재사용성을 높일 수 있습니다.
3. 여러 이벤트 리스너 추가
const button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("First click handler");
});
button.addEventListener("click", function() {
alert("Second click handler");
});
위 코드는 동일한 요소에 여러 이벤트 리스너를 추가하여 순차적으로 실행되게 합니다.
4. 이벤트 캡처링과 버블링
<div id="parent">
<button id="child">Click Me!</button>
</div>
const parent = document.getElementById("parent");
const child = document.getElementById("child");
parent.addEventListener("click", function() {
alert("Parent clicked!");
}, true); // 캡처링 단계에서 실행
child.addEventListener("click", function() {
alert("Child clicked!");
});
- 캡처링 단계에서는 부모의 이벤트가 먼저 실행됩니다.
- 기본 버블링 동작과 비교할 때 유연한 이벤트 흐름 제어가 가능합니다.
5. 이벤트 리스너 제거
<button id="myButton">Click Me!</button>
function handleClick() {
alert("Button clicked!");
}
const button = document.getElementById("myButton");
button.addEventListener("click", handleClick);
// 3초 후 이벤트 리스너 제거
setTimeout(() => {
button.removeEventListener("click", handleClick);
alert("Event listener removed!");
}, 3000);
removeEventListener
를 사용하면 더 이상 특정 이벤트를 감지하지 않도록 설정할 수 있습니다.
6. 한 번만 실행되는 이벤트 (once
옵션)
<button id="myButton">Click Me!</button>
const button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("Button clicked!");
}, { once: true });
이 코드는 이벤트가 한 번 발생한 후 자동으로 리스너를 제거합니다.
정리
addEventListener
는 DOM 요소에 이벤트를 유연하게 추가하고 제어할 수 있는 강력한 메서드입니다. 캡처링, 버블링, 이벤트 리스너 제거 등 다양한 기능을 활용하여 동적인 사용자 인터페이스를 구현할 수 있습니다.
이벤트 처리와 관련된 더 많은 내용을 알고 싶다면 댓글로 질문해주세요! 😊
Leave a comment