# * DOM Event Handle
Web API Event์ stopPropagation, preventDefault Methods์ ๋ํด ์ค๋ช ํ๊ณ ์ ํ๋ค.
์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ด๋ ?
- ์์์์ ๋ฐ์๋ ์ด๋ฒคํธ๊ฐ ๋ถ๋ชจ ๋ ธ๋์ ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋๋ ํ์
์ด๋ฒคํธ ์บก์ฒ๋ง์ด๋ ?
- ๋ถ๋ชจ์์ ๋ฐ์๋ ์ด๋ฒคํธ๊ฐ ์์ ๋ ธ๋์ ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋๋ ํ์
# event.stopPropagation
event.stopPropagation : ์ด๋ฒคํธ ์บก์ณ๋ง๊ณผ ๋ฒ๋ธ๋ง์ ์์ด ํ์ฌ ์ด๋ฒคํธ ์ดํ์ ์ ํ๋ฅผ ๋ง๋๋ค.
์ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด ์ฌ์ฉ์๊ฐ a ํ๊ทธ ํด๋ฆญ์ ํด๋น ํ๊ทธ๋ฅผ ๊ฐ์ธ๊ณ ์๋, li, ul
์ ์์ฐจ์ ์ผ๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ๋๋ค.
a click -> li click -> ul click
์์ผ๋ก ํด๋น ๋
ธ๋๋ค์ ์์ฐจ์ ์ผ๋ก ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
์ฌ์ฉ์์ ์๋์๋ ๋ค๋ฅด๊ฒ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
i.e.
์๋์น ์์ ์ด๋ฒคํธ ์ ํ๋ฅผ ๋ง์์ฃผ๋๊ฒ stopPropagation ์ด๋ค.
# event.preventDefault
event.preventDefault : ์ด๋ฒคํธ๋ฅผ ์ทจ์ํ ์ ์๋ ๊ฒฝ์ฐ, ์ด๋ฒคํธ์ ์ ํ๋ฅผ ๋ง์ง์๊ณ ๊ทธ ์ด๋ฒคํธ๋ฅผ ์ทจ์ํ๋ค.
preventDefault๋ ๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ๋ฅผ ์๋ํ์ง ๋ชปํ๊ฒ ํ๋ method ์ด๋ค.
<a>,<input>,<textarea>
์ ๊ฐ์ ํ๊ทธ์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ๋์์ ๋ง์ ์ ์๋ค.
e.g.
a ํ๊ทธ๋ ์ ์ฉ๋ href ์์ฑ์ ํตํด ์ค์ ๋ ๋งํฌ๋ก ํ์ด์ง ์ด๋์ ํด์ฃผ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
a ํ๊ทธ ํด๋ฆญ ์ด๋ฒคํธ ๋ฐ์์ preventDefault ๋ฉ์๋๋ฅผ ์คํํ๋ฉด ํ์ด์ง๋ฅผ ์ด๋ํ๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ง๋๋ค.