자바스크립트 이벤트 리스너와 이벤트 핸들러는 웹 개발에서 자주 사용되는 중요한 개념입니다. 두 용어는 종종 혼동되어 사용되기도 하지만, 각각의 역할과 사용 방법에는 분명한 차이점이 있습니다. 이 글에서는 자바스크립트의 이벤트 리스너와 이벤트 핸들러의 차이점을 살펴보고, 각각의 특징, 사용 예제, 주요 이벤트, 그리고 주의해야 할 사항들을 다루어 보겠습니다.
이벤트 리스너는 특정 이벤트가 발생했을 때 반응하기 위해 설정하는 기능입니다. addEventListener 메소드를 사용하여 원하는 요소에 이벤트 리스너를 추가할 수 있습니다.
이벤트 | 설명 | 예제 |
---|---|---|
click | 사용자가 요소를 클릭했을 때 발생합니다. | element.addEventListener(‘click’, function() { console.log(‘클릭됨!’); }); |
dblclick | 사용자가 요소를 더블 클릭했을 때 발생합니다. | element.addEventListener(‘dblclick’, function() { console.log(‘더블 클릭됨!’); }); |
mouseover | 마우스 포인터가 요소 위로 이동했을 때 발생합니다. | element.addEventListener(‘mouseover’, function() { console.log(‘마우스 오버!’); }); |
mouseout | 마우스 포인터가 요소에서 벗어났을 때 발생합니다. | element.addEventListener(‘mouseout’, function() { console.log(‘마우스 아웃!’); }); |
mousemove | 마우스가 요소 위에서 움직일 때 발생합니다. | element.addEventListener(‘mousemove’, function() { console.log(‘마우스 움직임!’); }); |
keydown | 키보드의 키를 눌렀을 때 발생합니다. | document.addEventListener(‘keydown’, function(event) { console.log(‘키 다운: ‘ + event.key); }); |
keyup | 키보드의 키를 눌렀다 떼었을 때 발생합니다. | document.addEventListener(‘keyup’, function(event) { console.log(‘키 업: ‘ + event.key); }); |
change | 입력 요소의 값이 변경되었을 때 발생합니다(예: 텍스트 입력, 체크박스 선택 변경 등). | inputElement.addEventListener(‘change’, function() { console.log(‘값 변경됨!’); }); |
submit | 폼이 제출될 때 발생합니다. | formElement.addEventListener(‘submit’, function(event) { event.preventDefault(); console.log(‘폼 제출!’); }); |
load | 이미지, 스크립트, 문서 로딩 완료 시 발생합니다. | window.addEventListener(‘load’, function() { console.log(‘로딩 완료!’); }); |
resize | 브라우저 창의 크기가 변경될 때 발생합니다. | window.addEventListener(‘resize’, function() { console.log(‘창 크기 변경됨!’); }); |
scroll | 스크롤할 때 발생합니다. | window.addEventListener(‘scroll’, function() { console.log(‘스크롤!’); }); |
const button = document.querySelector("#myButton");
button.addEventListener("click", function() {
console.log("버튼이 클릭되었습니다!");
});
JavaScript이벤트 핸들러는 특정 이벤트에 대해 할당된 함수로, 이벤트가 발생하면 실행됩니다. DOM 요소의 이벤트 처리 속성을 통해 직접 할당됩니다.
이벤트 | 설명 | 예제 |
---|---|---|
onclick | 요소를 클릭했을 때 발생합니다. | element.onclick = function() { /* 코드 */ }; |
ondblclick | 요소를 더블 클릭했을 때 발생합니다. | element.ondblclick = function() { /* 코드 */ }; |
onmouseover | 마우스 포인터가 요소 위로 이동했을 때 발생합니다. | element.onmouseover = function() { /* 코드 */ }; |
onmouseout | 마우스 포인터가 요소 밖으로 이동했을 때 발생합니다. | element.onmouseout = function() { /* 코드 */ }; |
onmousemove | 마우스 포인터가 요소 위에서 움직일 때 발생합니다. | element.onmousemove = function() { /* 코드 */ }; |
onmousedown | 마우스 버튼을 요소 위에서 눌렀을 때 발생합니다. | element.onmousedown = function() { /* 코드 */ }; |
onmouseup | 마우스 버튼을 요소 위에서 눌렀다가 놓았을 때 발생합니다. | element.onmouseup = function() { /* 코드 */ }; |
onkeydown | 키보드의 키를 눌렀을 때 발생합니다. | element.onkeydown = function() { /* 코드 */ }; |
onkeyup | 키보드의 키를 눌렀다가 놓았을 때 발생합니다. | element.onkeyup = function() { /* 코드 */ }; |
onkeypress | 키보드의 키를 눌렀을 때 (특정 키에 대해 onkeydown 과 onkeyup 사이에 발생) | element.onkeypress = function() { /* 코드 */ }; |
onchange | 입력 요소의 값이 변경되었을 때 발생합니다. (예: 텍스트 필드의 내용 변경) | element.onchange = function() { /* 코드 */ }; |
onsubmit | 폼이 제출될 때 발생합니다. | form.onsubmit = function() { /* 코드 */ }; |
onload | 문서 또는 이미지가 완전히 로드되었을 때 발생합니다. | window.onload = function() { /* 코드 */ }; |
onresize | 창 또는 프레임의 크기가 변경되었을 때 발생합니다. | window.onresize = function() { /* 코드 */ }; |
onscroll | 스크롤이 발생했을 때 발생합니다. | element.onscroll = function() { /* 코드 */ }; |
const button = document.querySelector("#myButton");
button.onclick = function() {
console.log("버튼이 클릭되었습니다!");
};
JavaScript자바스크립트에서 이벤트 리스너와 이벤트 핸들러는 각기 다른 목적과 사용 방법을 가지고 있습니다. 이벤트 리스너는 다양한 이벤트에 유연하게 대응할 수 있는 반면, 이벤트 핸들러는 특정 이벤트에 대해 간결하고 직관적으로 작업을 수행할 수 있습니다. 개발자는 애플리케이션의 요구사항과 상황에 따라 적절한 방법을 선택하여 사용하는 것이 중요합니다.
소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…
해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…
LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…
ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…
제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…