Skip to content

Latest commit

ย 

History

History
44 lines (30 loc) ยท 2.43 KB

File metadata and controls

44 lines (30 loc) ยท 2.43 KB

JavaScript ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ ๋“ฑ๋ก ๋ฐ ํ•ด์ œ

์ด๋ฒคํŠธ ๋“ฑ๋ก

addEventListener๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ™์€ ์š”์†Œ์˜ ๊ฐ™์€ ์ด๋ฒคํŠธ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฒคํŠธ ์ œ๊ฑฐ

removeEventListener๋กœ ์ด๋ฏธ ๋“ฑ๋กํ•œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ์ค‘ ๋™์ผํ•œ ์ธ์ž๋ฅผ ๋ฐ›๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๊ฐ€์ง€ ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค.

  1. ์ œ๊ฑฐํ•  ์—˜๋ฆฌ๋จผํŠธ ์š”์†Œ
  2. click, keypress ๋“ฑ์˜ ์ด๋ฒคํŠธ ํƒ€์ž…
  3. ์ œ๊ฑฐํ•  ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง, ์บก์ณ๋ง์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง

ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ์—์„œ ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ์ „ํŒŒ๋˜๋Š” ํŠน์„ฑ์„ ๋งํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ํŠน์ • ํ™”๋ฉด ์š”์†Œ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ตœ์ƒ์œ„์— ์žˆ๋Š” ํ™”๋ฉด ์š”์†Œ๊นŒ์ง€ ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒ์‹œํ‚จ๋‹ค.

์ด๋ฒคํŠธ ์บก์ฒ˜๋ง

๋ฒ„๋ธ”๋ง๊ณผ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ์ด๋ฒคํŠธ ์ „ํŒŒ ๋ฐฉ์‹์ด๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์€ addEventListener() API์—์„œ ์˜ต์…˜ ๊ฐ์ฒด์— capture:true๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ด๋ฒคํŠธ ์œ„์ž„ (Event Delegation)

ํ•˜์œ„ ์š”์†Œ์— ๊ฐ๊ฐ ์ด๋ฒคํŠธ๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  ์ƒ์œ„ ์š”์†Œ์—์„œ ํ•˜์œ„ ์š”์†Œ์˜ ์ด๋ฒคํŠธ๋“ค์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ์ด ๋งŽ์•„์ง€๋ฉด ๋งŽ์•„์งˆ์ˆ˜๋ก ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋‹ค๋Š” ์ž‘์—… ์ž์ฒด๊ฐ€ ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ด ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ์ด๋ฒคํŠธ ์œ„์ž„์ด๋‹ค.


stopPropagation vs preventDefault

stopPropagation()

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด๋‚˜ ์บก์ณ๋ง ๊ฐ™์€ ์ด๋ฒคํŠธ๊ฐ€ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ฃผ๋Š” api์ด๋‹ค. ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์˜ ๊ฒฝ์šฐ์—๋Š” ํด๋ฆญํ•œ ์š”์†Œ์˜ ์ด๋ฒคํŠธ๋งŒ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ƒ์œ„ ์š”์†Œ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•œ๋‹ค.

์ด๋ฒคํŠธ ์บก์ณ์˜ ๊ฒฝ์šฐ์—๋Š” ํด๋ฆญํ•œ ์š”์†Œ์˜ ์ตœ์ƒ์œ„ ์š”์†Œ์˜ ์ด๋ฒคํŠธ๋งŒ ๋™์ž‘์‹œํ‚ค๊ณ  ํ•˜์œ„ ์š”์†Œ๋“ค๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

preventDefault()

ํ˜„์žฌ ์ด๋ฒคํŠธ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ค‘๋‹จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด a ํƒœ๊ทธ์— ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๋‹ฌ๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜์— preventDefault๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด a ํƒœ๊ทธ์˜ href ์†์„ฑ์ด ์ค‘๋‹จ๋œ๋‹ค.


์ฐธ๊ณ