1 분 소요

이벤트 객체

  • pos기를 만드는 과정 중 일부이다. 화면에 두 버튼이 있다. 이 버튼을 클릭할 때, 각각 음료의 이름을 출력하는 프로그램이다.
let menus = document.querySelectorAll("button"); //모든 버튼을 가져옵니다.

let btnAmericano = menus[0];
let btnCaffelatte = menus[1];

btnAmericano.onclick = handleClick;
btnCaffelatte.onclick = handleClick; // 이상으로 for 문으로 충분히 구현할 수 있는 내용입니다.

function handleClick() {
  // 아래의 빈 칸(____)을 채우세요.
  let currentMenu = ____; // TODO
  console.log(currentMenu + "를 클릭하셨습니다.");
  • 이때 눌리는 버튼의 메뉴이름을 가져오는 방법은 무엇일까?

event

  • 사용자가 버튼에 따라 출력되는 이름이 달라지므로, 클릭된 이벤트 객체에서 메뉴의 이름을 가져온다.
  • 이벤트 객체는 사용자 입력(onclick, onkeyup, onscroll 등)을 트리거로 발생한 이벤트 정보를 담은 객체이다.
let menus = document.querySelectorAll("button"); //모든 버튼을 가져옵니다.

let btnAmericano = menus[0];
let btnCaffelatte = menus[1];

btnAmericano.onclick = handleClick;
btnCaffelatte.onclick = handleClick; // 이상으로 for 문으로 충분히 구현할 수 있는 내용입니다.

function handleClick(event) {
  // 아래의 빈 칸(____)을 채우세요.
  console.log(event);
  let currentMenu = ____; // TODO
  console.log(currentMenu + "를 클릭하셨습니다.");
  • 여기서 handclick 함수에 매개변수를 event로 받아 console.log를 찍어보면, onclick이 발생한 버튼의 대한 정보인 객체를 가져오게 된다.
  • 이때 정보 안에 target 이라는 key에 onclick이 발생한 타겟에 대한 태그 정보가 나오게 된다. 따라서 event.target을 하면 해당 태그를 가져올 수 있게된다.
  • 이 event.target에 textContext 혹은 innerHTML을 이용하여 해당 문자열을 가져오면 된다.
let menus = document.querySelectorAll("button"); //모든 버튼을 가져옵니다.

let btnAmericano = menus[0];
let btnCaffelatte = menus[1];

btnAmericano.onclick = handleClick;
btnCaffelatte.onclick = handleClick; // 이상으로 for 문으로 충분히 구현할 수 있는 내용입니다.

function handleClick(event) {
  // 아래의 빈 칸(____)을 채우세요.
//   console.log(event);
  let currentMenu = event.target.innerHTML; // TODO
  console.log(currentMenu + "를 클릭하셨습니다.");

이벤트 메소드

onsubmit

  • 현재 창에서 폼을 제출하는 이벤트를 다루는 이벤트 핸들러이다.
  • 제출 이벤트는 사용자가 폼 내부에 있는 제출버튼을 눌렀을 때 발생한다.

onchange

  • onchange 속성은 change 이벤트의 이벤트 핸들러를 설정하고 반환한다.
  • target.onchange = functionRef;
  • functionRef는 null 또는 이벤트 핸들러를 지정하는 js function 함수 중 하나여야 한다.

onmouseover

  • onmouseover 프로퍼티는 mouseover 이벤트의 프로세스인 이벤트 핸들러의 혼합 이벤트 이다.
  • onmouseover과 onmouseout 이벤트와 같이 사용할 때가 있다.
  • element.onmouseover = function

onkeyup

  • 사용자가 눌렀던 키를 놓을 때 발생한다.

event.prevnetDefault

  • 어떤 이벤트를 명시적으로 처리하지 않은 경우, 해당 이벤트에 대한 사용자 에이전트의 기본 동작을 실행하지 않도록 지정한다.
  • preventDefalut()를 호출한 이벤트도 수신기 중 하나에서 stopPropagation() 또는 stopImmediatePropagation()을 호출하기 전까지는 다른 이벤트와 마찬가지로 전파한다.

  • 예제

댓글남기기