[JavaScript] ⑦ 자바스크립트 DOM 이벤트 핸들링

2020. 10. 13. 22:03·개발/JavaScript

이벤트(event)란 애플리케이션에서 발생하는 사용자의 마우스 클릭 click, 키보드 입력 keydown 등과 같은 활동이며, 이벤트 드리븐 프로그래밍(Event-driven Programming)은 이러한 이벤트를 중심으로 프로그램을 제어하는 방식을 일컫는다.

이벤트 핸들러란?

특정한 이벤트가 발생했을 때, 호출되는 코드(대부분의 경우 함수)를 이벤트 핸들러(Event Handler)라 한다. 아래의 코드는 클릭 시 배경 색상을 임의로 바꾸는 이벤트 핸들러를 구현한 것이다. 이벤트 핸들러 추가는 어트리뷰트 방식, 프로퍼티 방식, addEventListener메서드 방식으로 할당할 수 있는데, 오늘날에는 addEventListener 방식을 가장 많이 사용한다

 

아래 버튼 클릭 시 이벤트 리스너의 click 이벤트가 감지되어 bgChange 핸들러가 실행된다. 결과적으로 화면의 배경이 자동으로 변경된다.

 

 

const btn = document.querySelector('button');

function random(number) {
    return Math.floor(Math.random()*number);
}

function bgChange() {
    const rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')';
    document.body.style.backgroundColor = rndCol;
}

btn.addEventListener('click', bgChange);

또는 아래와 같이 다양한 이벤트 리스너를 추가하고 핸들러를 통해 이벤트를 감지할 수 있다. 아래 텍스트에서는 마우스 오버, 아웃, 오른쪽 클릭, 화면 크기 조정의 이벤트를 리스닝하고 있다.

 

Hello... I am ready to listen...

const colors = ["red", "blue", "green", "pink", "orange"];

const eventH1 = document.querySelector(".eventHandle h1");

function getRandomColor() {
  const randomIndex = Math.floor(Math.random() * colors.length);
  eventH1.style.color = colors[randomIndex]
}

const superEvenetHandler = {
  "handleMouseOver": function handleMouseOver() {
    eventH1.innerText = "Mouse is here!";
    getRandomColor();
  },
  "handleMouseOut": function handleMouseOut() {
    eventH1.innerText = "Mouse has gone T_T";
    getRandomColor();
  },

  "handleWindowResize":
    function handleWindowResize() {
      eventH1.innerText = "The screen is resized!"
      getRandomColor();
    },

  "handleMouseDown": function handleWindowMouseDown() {
    eventH1.innerText = "Right button clicked!"
    getRandomColor();
  }
}

eventH1.addEventListener("mouseover", superEvenetHandler.handleMouseOver);
eventH1.addEventListener("mouseout", superEvenetHandler.handleMouseOut);
window.addEventListener("resize", superEvenetHandler.handleWindowResize);
window.addEventListener("contextmenu", superEvenetHandler.handleMouseDown);
  • 참고: Introduction to events, MDN

'개발 > JavaScript' 카테고리의 다른 글

자바스크립트 DOM 타겟 이벤트 메소드 활용하기  (0) 2020.10.14
[JavaScript] ⑥ 자바스크립트 DOM 뜻과 활용 방법  (0) 2020.10.12
자바스크립트 값, 표현식, 구문, 리터럴 의미 설명  (0) 2020.10.08
'개발/JavaScript' 카테고리의 다른 글
  • 자바스크립트 세미콜론은 언제 사용할까?
  • 자바스크립트 DOM 타겟 이벤트 메소드 활용하기
  • [JavaScript] ⑥ 자바스크립트 DOM 뜻과 활용 방법
  • 자바스크립트 값, 표현식, 구문, 리터럴 의미 설명
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
[JavaScript] ⑦ 자바스크립트 DOM 이벤트 핸들링
상단으로

티스토리툴바