Event
브라우저에는 많은 이벤트가 발생한다. 브라우저 화면의 크기를 마우스로 조절할 때도, 스크롤을 할 때도, 마우스로 이동하거나 무언가를 선택할때도 이벤트가 발생한다.
이벤트를 브라우저가 발생시켜주니, 우리는 그 때 어떤 일을 하라고 할 일을 등록할 수 있다.
다시 말해, HTML 엘리먼트별로 어떤 이벤트가 발생했을 때 특정 행위를 하고 싶다면, 대상 엘리먼트를 찾고 어떤 일을 등록하면 된다. 이를 자바스크립트로 구현할 수 있다.
이벤트 등록
이벤트 등록 표준방법 - addEventListener()
var el = document.getElementById("ouside");
el.addEventListener("click", function() {
//do something
}, false);
addEventListener 함수의 두 번째 인자는 함수이다. 이 함수는 나중에 이벤트가 발생할 때 실행되는 함수로 이벤트 핸들러(Event Handler) 또는 이벤트 리스너(Event Listener)라고 한다. 콜백함수는 이벤트가 발생할 때 실행된다.
이벤트 객체
브라우저는 이벤트 리스너를 호출할 때, 사용자로부터 어떤 이벤트가 발생했는지에 대한 정보를 담은 이벤트 객체를 생성해서 리스너 함수에 전달한다.
따라서 이벤트리스너 안에서는 이벤트객체를 활용해서 추가적인 작업을 할 수 있게 된다.
var el = document.getElementById("outside");
el.addEventListener("click", function(evt){
console.log(evt.target);
console.log(evt.target.nodeName);
}, false);
가장 많이 쓰이는 건 event.target이다.
event.target은 이벤트가 발생한 element를 가리킨다.
element도 객체이므로 안에 nodeName이나 className과 같이 element가 가진 속성을 사용할 수 있다.
innerText를 사용하면 해당 앨리먼트 안에 있는 텍스트를 읽어올 수 있다.
[부스트코스 관련 강의 링크]
Browser Event, Event object, Event handler - https://www.edwith.org/boostcourse-web/lecture/16700/
'Tech > BoostCourse - WEB' 카테고리의 다른 글
[부스트 코스] Ajax 통신의 이해 (0) | 2020.02.24 |
---|---|
[부스트코스] 웹 프로그래밍 프로젝트 코드 리뷰 후기 (0) | 2020.02.23 |
[부스트코스] DOM과 querySelector (0) | 2020.02.20 |
[부스트코스] 자바스크립트 window 객체(setTimeout) (0) | 2020.02.20 |
[부스트코스] 자바스크립트 함수 호출 스택 (0) | 2020.02.18 |