Browser Event, Event object, Event handler - accidentlywoo/legacyVue GitHub Wiki
Browser Event, Event object, Event handler
- ๋ค์ด๊ฐ๊ธฐ ์ ์ ์ด๋ค ์์ญ์ ๋ง์ฐ์ค ํด๋ฆญํ๊ฑฐ๋, ํ๋ฉด์ ์คํฌ๋กค ํ๊ฑฐ๋ ํ๋ ์์ ์ ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ฐ ๊ฒ๋ค์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ Event๊ธฐ๋ฐ์ผ๋ก ๋์๋๊ฒ ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค์ํ Event๋ฅผ ์์๋ณด๋ฉด์ ์นํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ดํดํด๋ด ์๋ค.
ํ์ต ๋ชฉํ
- Event listener ๋ฌด์์ธ์ง ์ดํดํฉ๋๋ค.
- Event๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํต์ฌ ๊ฐ๋
- Event listener
- addEventListener
- event object
ํ์ตํ๊ธฐ
Event
๋ธ๋ผ์ฐ์ ์๋ ๋ง์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ํฌ๊ธฐ๋ฅผ ๋ง์ฐ์ค๋ก ์กฐ์ ํ ๋๋, ์คํฌ๋กค์ ํ ๋๋, ๋ง์ฐ์ค๋ก ์ด๋ํ๊ฑฐ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ ํํ ๋๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค.์ด๋ฒคํธ๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์์์ผ์ฃผ๋, ์ฐ๋ฆฌ๋ ๊ทธ๋ ์ด๋ค ์ผ์ ํ๋ผ๊ณ ํ ์ผ์ ๋ฑ๋กํ ์๊ฐ ์์ต๋๋ค. ๋ค์ ๋งํด, HTML ์๋ฆฌ๋จผํธ๋ณ๋ก ์ด๋ค ์ด๋ฒคํธ(์ฃผ๋ก ํค๋ณด๋๋ ๋ง์ฐ์ค ๊ด๋ จ)๊ฐ ๋ฐ์ํ์ ๋ ํน์ ํ์๋ฅผ(์ด๋ค ์ผ) ํ๊ณ ์ถ๋ค๋ฉด, ๋์ ์๋ฆฌ๋จผํธ๋ฅผ ์ฐพ๊ณ ์ด๋ค ์ผ์ ๋ฑ๋กํ๋ฉด ๋๋ค. ๊ทธ๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
์ด๋ฒคํธ ๋ฑ๋ก
์ด๋ฒคํธ ๋ฑ๋ก ํ์ค๋ฐฉ๋ฒ์
๋๋ค.
addEventListenerํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
var el = document.querySelector(".outside"); 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๊ฐ ๊ฐ์ง ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๊ฐํด๋ณด๊ธฐ
event type์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์? ๋ง์ฐ์ค, ํค๋ณด๋ ๊ด๋ จ ํ์ ๋ค์ ์์ธํ ์์๋ณด์ธ์.