JavaScript Events
Event ์ ์ดํด
Event model
: Event handler์ event API ์ ์
Web browser์ ์๊ธฐ๋ณ๋ก 3๊ฐ์ง์ ๋ค๋ฅธ event model ์กด์ฌ
why?
web browser์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ณํ๋๊ณ ๊ฐ์
Event model์ ์ข ๋ฅ
๊ธฐ๋ณธ ์ด๋ฒคํธ ๋ชจ๋ธ (Original event model)
์ค๋๋ ๋ชจ๋ธ
IE 8 ์ดํ์ ํธํ ์๋จ
๊ธฐ์ ์ ์ผ๋ก ๋ถ์กฑ
DOM Level 0 event model
ํ์ค ์ด๋ฒคํธ ๋ชจ๋ธ (Standard event model)
ํ์ฌ IE 9 ์ด์๊ณผ ๋ค๋ฅธ ๋ชจ๋ web browser์์ ์ง์
DOM Level 2 event model
์ธํฐ๋ท ์ต์คํ๋ก๋ฌ ์ด๋ฒคํธ ๋ชจ๋ธ (Internet Explorer event model)
IE 8 ์ดํ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ
๋ค๋ฅธ web browser์์ ์ง์ํ์ง ์์
๋ ์ด์ ์ฌ์ฉ ์ํจ
.addEventListener()
.addEventListener()
: DOM ๊ฐ์ฒด์ event handler ํจ์๋ฅผ ์ ์ฉ
EventTarget.addEventListener (type, listener, [, useCapture]);
type: ์ด๋ฒคํธ ์ ํ
listener: ์ด๋ฒคํธ ๋ฐ์ ์ ์คํํ callback ํจ์ (event handler)
useCapture: ๊ธฐ๋ณธ ๊ฐ (false), ์์ ๋ ธ๋๋ก ์ ํ (bubbling), ๋ง์ฝ true ์ธ ๊ฒฝ์ฐ ํ์ node๋ก ์ ํ (capturing)
preventDefault()
preventDefault()
: Event ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์๋์ ๋ง์
.removeEventListener()
.removeEventListener()
: Event handler ์ ๊ฑฐ
์ง์ด๋๋
addEventListener()
์ ๋๊ฐ์ ์ธ๊ฐ์ง ์ธ์๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผํจ
Event ์ ํ
Event ์ ํ์ 3๋จ๊ณ
document node์์ event ๋ฐ์ node๊น์ง ๋ด๋ ค๊ฐ๋ฉด์ event ์ ํ
event ๋ฐ์ node
event ๋ฐ์ node์์ document node๊น์ง ์ฌ๋ผ๊ฐ๋ฉด์ event ์ ํ
.stopPropagation()
.stopPropagation()
: ์ด๋ฒคํธ ์ ํ๋ฅผ ๋ง๋ ์ด๋ฒคํธ API
Event๋ ํด๋น ์์์์ ์ ํ๋๋ฉฐ, capturing๊ณผ bubbling์ผ๋ก ๊ตฌ๋ถ๋๋ค
ํญ์ capturing ๋ถํฐ ์์ํ์ฌ bubbling์ผ๋ก ์ข ๋ฃ๋๋ค
addEventListener method์ ์ธ ๋ฒ์งธ ์ธ์์ธ userCapture (false ๊ฐ default)๋ฅผ ํตํด ํน์ ์ํฉ์ ๋ํ ์ด๋ฒคํธ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค
Event ๊ฐ์ฒด์ this
: Event listener์ callback ํจ์์์ this๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ event listener์ binding ๋์ด ์๋ ์์๊ฐ ์ง์ ๋๋ค
this์ target
Event handler๊ฐ ํธ์ถํ๋ ํจ์์ this์ ์ญํ
: ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฐ์ฒด
event.target == this
Last updated