그대로 직역하자면 어떤 사건
으로 유저가 UI의 어떤 버튼을 클릭하거나, 스크롤을 하거나 등을 의미한다.
이벤트가 전달되는 순서를 의미한다.
어떤 이벤트가 발생을 하면 가장 깊은 곳(가장 하위)부터 거슬러 올라가는 방식을 말한다.
만약 HTML의 구성이 document
HTML
BODY
div
로 되어있다면,
가장 깊은 곳인 div
- BODY
- HTML
- document
로 거슬로 올라가는 방식이다.
이벤트 버블링
방식과는 반대로 최상위 노드에서 이벤트가 발생하여
document
- HTML
- BODY
- div
순서로 이벤트가 발생한다.
event
라는 특별한 로컬변수를 사용할 수 있다.// 예시
var btn = document.getElementById("myBtn");
btn.onClick = function() {
alert("버튼이 클릭됨");
};
this
이용this
는 요소자체(엘리먼트)를 가리킨다.// 예시
var btn = document.getElementById("myBtn");
btn.onClick = function() {
alert(this.id); //myBtn
};
addEventListener(이벤트이름, 이벤트핸들러 함수, 캡처링 혹은 버블링)
Boolean
으로 나타내는 값이벤트 캡쳐링
는 true
, 이벤트 버블링
은 false
로 나타낸다.// 예시 1
var btn = document.getElementById("myBtn");
btn.addEventListener("click", function() {alert("버튼이 클릭됨")}, false);
// 예시 2
var btn = document.getElementById("myBtn");
btn.addEventListener("click", function() {alert(this.id)}, false);
event
객체에 저장된다.이벤트(event)
의 여러가지 정보를 파악한다.브라우저
에서 이벤트
가 발생하면 발생된 이벤트와 관련된 정보들을 이벤트 객체(event)
에 담긴다.// 예시 1
var btn = document.getElementById("myBtn");
btn.onClick = function(event) { //event가 이벤트 객체
alert(event.type); //click
}
// 예시 2
var btn = document.getElementById("myBtn");
btn.addEventListener("click", function(event) { //event가 이벤트 객체
alert(event.type); //click
}, false);