Categories: JavaScript

JavaScript 자바스크립트 이벤트 핸들러 (EventHandler)

이벤트 핸들러란?

이벤트 핸들러는 사용자의 입력, 마우스 움직임, 키보드 조작 등의 다양한 이벤트에 반응하여 실행되는 함수입니다. 이는 사용자와 웹 페이지 간의 상호작용을 가능하게 하며, 웹사이트의 동적 기능을 구현하는 데 중요한 역할을 합니다.

이벤트 핸들러의 특징

  1. 인라인 이벤트 핸들러: HTML 요소 내에 직접 작성되는 방식입니다. 간편하지만, HTML과 자바스크립트 코드가 혼합되어 유지보수가 어렵고, 이벤트 리스너를 한 번에 하나만 할당할 수 있는 단점이 있습니다.
  2. 속성을 이용한 이벤트 핸들러: DOM 요소의 프로퍼티에 함수를 할당하는 방식입니다. 이벤트 핸들러가 HTML과 분리되어 유지보수에 유리하지만, 여전히 한 요소에 하나의 이벤트 리스너만 할당할 수 있다는 제약이 있습니다.
  3. addEventListener를 사용한 이벤트: 가장 모던하고 권장되는 방식입니다. 여러 이벤트를 하나의 요소에 할당할 수 있으며, 이벤트 캡처링과 버블링을 제어할 수 있는 옵션이 있습니다.

이벤트 핸들러의 종류

이벤트 핸들러설명예제
onclick요소를 클릭했을 때 발생합니다.element.onclick = function() { alert(‘클릭!’); };
ondblclick요소를 더블 클릭했을 때 발생합니다.element.ondblclick = function() { alert(‘더블 클릭!’); };
onmouseover마우스가 요소 위로 이동했을 때 발생합니다.element.onmouseover = function() { alert(‘마우스 오버!’); };
onmouseout마우스가 요소에서 벗어났을 때 발생합니다.element.onmouseout = function() { alert(‘마우스 아웃!’); };
onmousemove마우스가 요소 위에서 움직일 때 발생합니다.element.onmousemove = function() { alert(‘마우스 이동!’); };
onmousedown마우스 버튼이 요소 위에서 눌렸을 때 발생합니다.element.onmousedown = function() { alert(‘마우스 다운!’); };
onmouseup마우스 버튼이 요소 위에서 떼어졌을 때 발생합니다.element.onmouseup = function() { alert(‘마우스 업!’); };
onwheel마우스 휠이 요소 위에서 움직였을 때 발생합니다.element.onwheel = function() { alert(‘휠 이동!’); };
onkeydown키보드의 키가 눌렸을 때 발생합니다.element.onkeydown = function() { alert(‘키 다운!’); };
onkeyup키보드의 키가 떼어졌을 때 발생합니다.element.onkeyup = function() { alert(‘키 업!’); };
onkeypress키보드의 키가 눌리고 있는 동안 발생합니다.element.onkeypress = function() { alert(‘키 프레스!’); };
onfocus요소가 포커스를 받았을 때 발생합니다.element.onfocus = function() { alert(‘포커스!’); };
onblur요소가 포커스를 잃었을 때 발생합니다.element.onblur = function() { alert(‘블러!’); };
onchange입력 필드의 값이 변경되었을 때 발생합니다.element.onchange = function() { alert(‘변경됨!’); };
oninput입력 필드에 입력이 이루어질 때 마다 발생합니다.element.oninput = function() { alert(‘입력 중!’); };
onsubmit폼이 제출될 때 발생합니다.formElement.onsubmit = function() { alert(‘제출됨!’); };
onreset폼이 리셋될 때 발생합니다.formElement.onreset = function() { alert(‘리셋됨!’); };
onselect사용자가 텍스트를 선택했을 때 발생합니다.element.onselect = function() { alert(‘선택됨!’); };
onload문서나 이미지가 로드되었을 때 발생합니다.window.onload = function() { alert(‘로드 완료!’); };
onunload페이지가 언로드될 때 발생합니다.window.onunload = function() { alert(‘언로드!’); };
onresize창이 리사이즈될 때 발생합니다.window.onresize = function() { alert(‘리사이즈!’); };
onscroll요소를 스크롤할 때 발생합니다.element.onscroll = function() { alert(‘스크롤!’); };

이벤트 핸들러의 활용

  1. 폼 유효성 검사: 사용자가 폼을 제출하기 전에 입력 데이터의 유효성을 검증합니다.
  2. 동적 인터페이스 조작: 사용자의 액션에 따라 웹 페이지의 요소를 동적으로 추가, 삭제, 스타일 변경 등을 수행합니다.
  3. 사용자 피드백 제공: 마우스 오버, 클릭 등에 대한 즉각적인 시각적, 텍스트적 피드백을 제공합니다.
  4. 애니메이션 효과 구현: 사용자 인터랙션에 반응하여 웹 페이지의 요소에 애니메이션 효과를 추가합니다. 예를 들어, 버튼 위에 마우스를 올리면 버튼이 확대되는 효과 등입니다.
  5. 드래그 앤 드롭 기능: 사용자가 요소를 드래그하여 다른 위치로 이동시킬 수 있도록 하는 기능을 구현합니다. 이는 파일 업로드, 이미지 갤러리, 대시보드 위젯 등에서 자주 사용됩니다.

이벤트 핸들러 예제

HTML과 JavaScript를 사용하여 ‘클릭하여 색상 변경’ 기능을 구현하는 예제입니다.

HTML 코드

HTML
<!DOCTYPE html>
<html>
<head>
    <title>이벤트 핸들러 예제</title>
</head>
<body>

<button id="colorButton">색상 변경</button>

<script src="script.js"></script>

</body>
</html>
HTML

이 코드에서는 button 요소를 만들고, 이 버튼에 id 속성으로 “colorButton”을 부여했습니다. 이 id는 JavaScript에서 해당 버튼을 참조하기 위해 사용됩니다.

JavaScript 코드 (script.js)

JavaScript
document.addEventListener('DOMContentLoaded', function() {
    const button = document.getElementById('colorButton');
    button.onclick = changeColor;
});

function changeColor() {
    const colors = ['red', 'blue', 'green', 'yellow', 'purple'];
    const randomColor = colors[Math.floor(Math.random() * colors.length)];
    document.body.style.backgroundColor = randomColor;
}
JavaScript

  1. 문서 로드 대기: document.addEventListener(‘DOMContentLoaded’, function() {…}); 여기서는 문서가 완전히 로드될 때까지 기다린 후 스크립트를 실행합니다.
  2. 버튼 요소 참조: const button = document.getElementById(‘colorButton’); 이 코드는 HTML에서 id가 “colorButton”인 버튼 요소를 찾아 button 상수에 저장합니다.
  3. 이벤트 핸들러 할당: button.onclick = changeColor; 이 부분에서는 button 요소의 onclick 이벤트에 changeColor 함수를 할당합니다. 이 함수는 사용자가 버튼을 클릭할 때마다 실행됩니다.
  4. 색상 변경 함수: changeColor 함수는 colors 배열에서 랜덤한 색상을 선택하여 색을 변경합니다.

작동 방식

  • 사용자가 웹 페이지를 열면, DOMContentLoaded 이벤트가 발생하고 JavaScript 코드가 실행됩니다.
  • 사용자가 “색상 변경” 버튼을 클릭하면, changeColor 함수가 호출되어 색이 랜덤하게 변경됩니다.

이 예제는 이벤트 핸들러를 사용하여 웹 페이지의 동적 상호작용을 만드는 기본적인 방법을 보여줍니다. 이벤트 핸들러는 웹 개발에서 다양한 방식으로 활용될 수 있으며, 사용자 경험을 풍부하게 하는 데 큰 역할을 합니다.

결론

이벤트 핸들러는 웹 개발에서 필수적인 요소로, 사용자와 웹사이트 간의 상호작용을 동적으로 만들어 줍니다. 간단한 인터랙션에서부터 복잡한 애플리케이션 기능에 이르기까지, 이벤트 핸들러는 웹사이트의 사용자 경험을 향상시키는 데 중요한 역할을 합니다. 따라서 웹 개발자로서 이벤트 핸들러를 효과적으로 사용하고 이해하는 것은 사용자에게 매력적이고 동적인 웹사이트를 제공하는 데 있어 필수적입니다.

suover

Recent Posts

Java 자바 Set – HashSet, TreeSet, LinkedHashSet 정리

소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…

1개월 ago

Java 자바 Hash 해시 제대로 이해하기

해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…

2개월 ago

Java 자바 리스트 (List) 정리

List란 무엇인가? List는 자바 컬렉션 프레임워크의 핵심 인터페이스 중 하나로, 순서가 있는 데이터를 다루는 데…

2개월 ago

Java 자바 LinkedList 동작 원리와 사용법

LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…

2개월 ago

Java 자바 ArrayList 동작 원리와 사용법

ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…

2개월 ago

Java 자바 제네릭(Generic) 개념과 문법 알아보기

제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…

2개월 ago