본문 바로가기
웹 프로그래밍/JavaScript

Browser Event, Event object, Event handler

by Backchus 2019. 2. 7.

Event

브라우저에는 많은 이벤트가 발생한다.

브라우저 화면의 크기를 마우스로 조절할 때도, 스크롤을 할  때도, 마우스로 이동하거나 무언가를 선택할 때도 이벤트가 발생한다.

이벤트를 브라우저가 발생시켜주기때문에 우리는 그때 어떤 일을 하라고 할 일을 등록할 수가 있다.

즉, HTML엘리먼트별로 어떤 이벤트(주로 키보드나 마우스 관련)가 발생했을 때 특정 행위를(어떤 일) 하고 싶다면, 대상엘리먼트를 찾고 어떤 일을 등록하면 된다.

그것을 자바스크립트로 구현할 수 있다.


이벤트 등록 

이벤트 등록 표준방법이다.

addEventListener 함수를 사용할 수 있다.

1
2
3
4
var el = document.querySelector(".outside");
el.addEventListener("click"function(){
//do something..
}, false);
cs


addEventListener 함수의 두 번째 인자는 함수이다.

이 함수는 나중에 이벤트가 발생할 때 실행되는 함수로 이벤트핸들러(Event Handler) 또는 이벤트리스너(Event Listener)라고 한다.

콜백함수는 이벤트가 발생할 때 실행된다.


이벤트 객체

브라우저는 이벤트 리스너를 호출할 때, 사용자로부터 어떤 이벤트가 발생했는지에 대한 정보를 담은 이벤트 객체를 생성해서 리스너 함수에 전달한다.

따라서 이벤트리스너 안에서는 이벤트 객체를 활용해서 추가적인 작업을 할 수 있게 된다.

1
2
3
4
5
var el = document.getElementById("outside");
el.addEventListener("click"function(evt){
 console.log(evt.target);
 console.log(evt.target.nodeName);
}, false);
cs

가장 많이 쓰이는 건 event.target이다.

event.target은 이벤트가 발생한 element를 가리킨다.

element도 객체이므로 안에 nodeName이나 classname과 같이  element가 가진 속성을 사용할 수 있다.


참고링크: https://www.edwith.org/boostcourse-web/lecture/16700/ (부스트코스)

'웹 프로그래밍 > JavaScript' 카테고리의 다른 글

handlebars 템플릿  (0) 2019.08.20
객체 리터럴과 this  (0) 2019.08.19
자바스크립트 객체  (0) 2019.08.03
자바스크립트 배열  (0) 2019.08.02
DOM과 querySelector  (1) 2019.02.07