[JS] event 처리하기

박시은·2023년 7월 22일
0

JavaScript

목록 보기
49/58
post-thumbnail

▶ 자주 사용하는 이벤트

다양한 이벤트 목록을 확인하고 싶으면 모질라 문서를 확인하도록 하자!

▷ 문서 로딩 이벤트

이벤트이벤트가 발생하는 순간
abort웹 문서가 완전히 로딩되기 전에 불러오기를 멈추었을 때
error문서가 정확히 로딩되지 않았을 때
load문서 로딩이 끝났을 때
resize문서 화면의 크기가 바뀌었을 때
scroll문서 화면이 스크롤되었을 때
unload문서를 벗어날 때

로딩됐을 때 메시지 창을 출력해보자!

window.onload = alert("반가워요!");


▷ 마우스 이벤트

이벤트이벤트가 발생하는 순간
click사용자가 HTML 요소를 클릭했을 때
dbclick사용자가 HTML 요소를 더블클릭했을 때
mousedown사용자가 요소에서 마우스 버튼을 눌렀을 때
mousemove사용자가 요소에서 마우스 포인터를 움직일 때
mouseover마우스 포인터를 요소 위로 옮길 때
mouseout마우스 포인터가 요소를 벗어날 떄
mouseup요소 위에 올려놓은 마우스 버튼에서 손을 뗄 때

버튼을 클릭했을 때 문서의 배경색을 바꿔보자!

const button = document.querySelector("button");

button.onclick = function () {
  document.body.style.backgroundColor = "black";
};


▷ 키보드 이벤트

이벤트이벤트가 발생하는 순간
keydown키를 누르는 동안
keypress키를 눌렀을 때
keyup키에서 손을 뗄 때

▷ 폼 이벤트

이벤트이벤트가 발생하는 순간
blur폼 요소에 포커스를 잃었을 때
change목록이나 체크상태 등이 변경되었을 때
<input>, <select>, <textarea> 태그에서 사용
focus폼 요소에 포커스를 놓았을 때
<label>, <select>, <textarea>, <button> 태그에서 사용
reset폼이 리셋되었을 때
submit[submit] 버튼을 클릭했을 때

목록 변경시 변경 학과를 알림 창에 표시해보자!
폼 이벤트 소스는 앞전 포스팅에서 다루었으니 참고하도록 하자.

// html
    <label for="major">학과를 선택하세요</label>
    <select id="major">
      <option>---- 학과 선택 ----</option>
      <option>컴퓨터공학과</option>
      <option>산업경영공학과</option>
      <option>미디어소프트웨어학과</option>
      <option>기계공학과</option>
    </select>
// js
const selectMajor = document.querySelector("#major");
function displayeMajor() {
  const selectText = selectMajor.options[selectMajor.selectedIndex].innerText;
  alert(`${selectText}를 선택하셨습니다.`);
}
selectMajor.onchange = displayeMajor;




▶ 이벤트 핸들러(처리기)

버튼을 클릭했을 때 특정 페이지로 이동하는 것처럼 이벤트를 처리하는 것을 이벤트 핸들러라고 한다. 어떻게 이벤트를 처리할까? 살펴보도록 하자.

▷ HTML 태그에 함수 연결하기

  • 이벤트를 처리하는가장 간단한 방법은 이벤트가 발생한 HTML 태그에 직접 함수를 연결하는 것이다.
  • HTML 태그에 이벤트 처리기를 연결하는 속성을 추가하는데, 속성 이름은 on이벤트명으로 표현하고 그 뒤에 함수를 연결한다.
  • 기본형 : 태그 on이벤트명 = "함수형"

버튼을 클릭했을 때 알림창을 표시해보자!

//html
    <button onclick="alert(`클릭!`)">Click</button>


위 방법은 함수 이름이 바뀔 때 HTML 소스도 함께 수정해야 한다.
따라서 스크립트 파일에서 이벤트를 처리하는 방법을 알아보자.

▷ 웹 요소에 함수 연결하기

  • DOM을 사용해 웹 요소를 가져온 후 프로퍼티로 함수를 연결해보자
  • 기본형 : 요소.on이벤트명 = 함수
    ❗이 방법은 앞전 포스팅에서 계속 사용하였다.

버튼을 클릭했을 때 배경 색을 바꿔보자!

// html
  <button>Click</button>
// js
const button = document.querySelector("button");
button.onclick = () => {
  document.body.style.backgroundColor = "black";
};


▷ 이벤트 리스너로 이벤트 처리하기

  • 이벤트가 발생했을 때 두 가지 이상의 함수를 실행하려면 eddEventListener() 함수를 사용해야한다.

ddEventListener() 함수를 사용하여 배경색을 바꾸어보자

// html
  <button>Click</button>
// js
const button = document.querySelector("button");

function changeBackground() {
  document.body.style.backgroundColor = "black";
}
button.addEventListener("click", changeBackground);

익명 함수와 화살표 함수를 사용하여 간단하게 표현할 수 있다.

const button = document.querySelector("body");

button.addEventListener("click", () => {
  document.body.style.backgroundColor = "black";
});

▶ 텍스트 필드에 입력한 글자 수 알아내기

텍스트 필드에 단어를 입력했을 때 글자 수를 화면에 표시하는 프로그램을 작성해보자

// html
      <input type="text" class="word" />
      <button>글자 수 확인</button>
      <div class="wordLength"></div>
// js
const button = document.querySelector("button");

button.addEventListener("click", () => {
  const word = document.querySelector(".word").value;
  const result = document.querySelector(".wordLength");
  let count = word.length;
  result.innerText = `${count}`;
});




📎참조

Doit! 모던 자바스크립트 프로그래밍의 정석

profile
블로그 이전했습니다!

0개의 댓글