[TIL] JavaScript Event

Perfumeยท2022๋…„ 5์›” 11์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
13/13

๐Ÿ’ก Event?

์˜ค๋Š˜์˜ ์ฃผ์ œ๋Š” ์นœ์ˆ™ํ•˜์ง€๋งŒ ์–ด๋ ค์šด ์ด๋ฒคํŠธ(event)์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฒคํŠธ๋ž€ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญ์„ ํ–ˆ์„ '๋•Œ', ํ‚ค๋ณด๋“œ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ž…๋ ฅํ–ˆ์„ '๋•Œ'์™€ ๊ฐ™์€ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ž, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด alert์ฐฝ์ด ๋œจ๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด alert์ฐฝ์„ ๋„์šฐ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์•ผ๊ฒ ์ฃ . ์ด์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ , ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์•Œ๋ ค ํ˜ธ์ถœ์„ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์–ธ์ œ ์–ด๋Š ์‹œ๊ฐ„์— ๋ฒ„ํŠผ์„ ํด๋ฆญํ• ์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, "์–ธ์ œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•  ์ง€"๋„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉ์ž์˜ ํ–‰์œ„๋ฅผ ์ฆ‰๊ฐ ๊ฐ์ง€ํ•˜์—ฌ ํŠน์ • ํ•จ์ˆ˜(์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ)๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” 24์‹œ๊ฐ„ ๋Œ€๊ธฐํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์˜ ํ–‰๋™์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜์–ด์•ผ ํ•  ์ฝ”๋“œ๋ฅผ ๋“ฑ๋กํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ทธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋“ฑ๋ก๋œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก Event handler ๋“ฑ๋ก

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

  1. Inline (์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋ฐฉ์‹)
  2. ํ”„๋กœํผํ‹ฐ ๋ฆฌ์Šค๋„ˆ
  3. addEventListener

ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ”น Inline(์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋ฐฉ์‹)

์ธ๋ผ์ธ ๋ฐฉ์‹์€ ์ด๋ฒคํŠธ๋ฅผ ์ด๋ฒคํŠธ ๋Œ€์ƒ์˜ ํƒœ๊ทธ ์†์„ฑ์œผ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. HTML ์š”์†Œ์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์ค‘์—๋Š” ์ด๋ฒคํŠธ์— ๋Œ€์‘ํ•˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„์€ onclick์ฒ˜๋Ÿผ on์ ‘๋‘์‚ฌ์™€ ์ด๋ฒคํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฒคํŠธ ํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ์ฝ”๋“œ์ฒ˜๋Ÿผ์š”.

<button onclick="sayHi('perfume')">Click</button>

์ด ๋ฐฉ์‹์€ ์ •๋ณด์ธ HTML๊ณผ ์ œ์–ด์ธ JavaScript๊ฐ€ ํ˜ผ์žฌ๋œ ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ React ๊ฐ™์€ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. HTML,CSS,์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐœ๋ณ„์ ์ธ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ ๋–„๋ฌธ์ž…๋‹ˆ๋‹ค.

๐Ÿ”น ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹

ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹์€ ์ด๋ฒคํŠธ ๋Œ€์ƒ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ์— ํ•จ์ˆ˜๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.

<html>
	<button> Click Here! </button>
	<script>
		const $button = document.querySelector('button');
      	$button.onClick = function () {
      alert('Hi, there')
      };
 	</script>
</html>

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฐ์ฒด์ธ ์ด๋ฒคํŠธ ํƒ€๊นƒ๊ณผ ์ด๋ฒคํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์ธ ์ด๋ฒคํŠธ ํƒ€์ž…, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ๋กœ ์œ„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž๋ฉด, $button์ด ์ด๋ฒคํŠธ ํƒ€๊นƒ, onClick ๋ถ€๋ถ„์ด ์ด๋ฒคํŠธ ํƒ€์ž…, funtion()์ด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์ž…๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹์€ HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋’ค์„ž์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ์— ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋งŒ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”น addEventListener() ๋ฐฉ์‹

addEventListener() ๋ฐฉ์‹์€ ๋ง๊ทธ๋Œ€๋กœ addEventListener() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์˜ ์ค‘์š”ํ•œ ์žฅ์ ์€ ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ ๋Œ€์ƒ์— ๋ณต์ˆ˜์˜ ๋™์ผ ์ด๋ฒคํŠธ ํƒ€์ž… ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

addEventListener ๋ฉ”์„œ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ์ด๋ฒคํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฒคํŠธ ํƒ€์ž…์„ ์ „๋‹ฌํ•˜๋Š”๋ฐ, ์•ž์—์„œ ์‚ดํŽด๋ณธ ๋‘ ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ on ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์บ์น˜ํ•  ์ด๋ฒคํŠธ ์ „ํŒŒ ๋‹จ๊ณ„(์บก์ฒ˜๋ง ๋˜๋Š” ๋ฒ„๋ธ”๋ง)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์ „ํŒŒ์— ๊ด€ํ•ด์„œ๋Š” ์•„๋ž˜์—์„œ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์ด๋ฒคํŠธ ๊ฐ์ฒด

์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฒคํŠธ์— ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜

์œ„ ๊ทธ๋ฆผ์˜ Event, UIEvent,MouseEvent ๋“ฑ ๋ชจ๋‘๊ฐ€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒ์„ฑ๋œ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜์™€ ๋”๋ถˆ์–ด ์ƒ์„ฑ๋˜๋Š” ํ”„๋กœํ† ํƒ€์ž…์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์˜ ์ผ์›์ด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ด๋ฒคํŠธ ์ „ํŒŒ

HTML ํƒœ๊ทธ๋Š” ์ค‘์ฒฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ •ํ•œ ํƒœ๊ทธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋Š” ์ค‘์ฒฉ๋˜์–ด ์žˆ๋Š” ํƒœ๊ทธ๋“ค ๋ชจ๋‘๊ฐ€ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ์ฃ . ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ค‘์ฒฉ๋œ ํƒœ๊ทธ๋“ค์— ์ด๋ฒคํŠธ๊ฐ€ ๋“ฑ๋ก ๋˜์–ด ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ ๋ ๊นŒ์š”? ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ DOM ์š”์†Œ์ธ ์ด๋ฒคํŠธ ํƒ€๊นƒ์„ ์ค‘์‹ฌ์œผ๋กœ ๊ทธ ์š”์†Œ์˜ ๋ถ€๋ชจ ๋˜๋Š” ์ž์‹ ์š”์†Œ๊นŒ์ง€ ์ด๋ฒคํŠธ๊ฐ€ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค.์ด์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ๊ฐ€ DOM ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „ํŒŒ๋˜๋Š” ๊ฒƒ์„ ์ด๋ฒคํŠธ ์ „ํŒŒ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ „ํŒŒ๋˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋ฒ„๋ธ”๋ง(bubbling), ์บก์ณ๋ง(capturing)์ด๋ผ๊ณ  ๊ตฌ๋ถ„์ง€์–ด ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๐Ÿ’ก ์ด๋ฒคํŠธ ์œ„์ž„

์ด๋ฒคํŠธ ์œ„์ž„์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ DOM ์š”์†Œ์— ๊ฐ๊ฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋Œ€์‹  ํ•˜๋‚˜์˜ ์ƒ์œ„ DOM ์š”์†Œ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์œ„์ž„์„ ํ†ตํ•ด ์ƒ์œ„ DOM ์š”์†Œ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ DOM ์š”์†Œ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๊ธฐ๋ณธ ๋™์ž‘ ์ค‘๋‹จ

์›น๋ธŒ๋ผ์šฐ์ €์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค์€ ๊ฐ๊ฐ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ํ•„๋“œ์— ํฌ์ปค์Šค๋ฅผ ์ค€ ์ƒํƒœ์—์„œ ํ‚ค๋ณด๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ…์ŠคํŠธ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
  • ํผ์—์„œ submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ๋‹ค.
  • a ํƒœ๊ทธ๋ฅผ ํด๋ฆญํ•˜๋ฉด href ์†์„ฑ์˜ URL๋กœ ์ด๋™ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘๋“ค์„ ๊ธฐ๋ณธ ์ด๋ฒคํŠธ๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ฒคํŠธ ๊ฐ์ฒด์˜ preventDefault ๋ฉ”์„œ๋“œ๋Š” ์ด๋Ÿฌํ•œ DOM ์š”์†Œ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ stopPropagation ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ ์ „ํŒŒ๋ฅผ ์ค‘์ง€์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ๏ธ ์ฐธ๊ณ 

๋”ฅ๋‹ค์ด๋ธŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
์ƒํ™œ์ฝ”๋”ฉ Event

profile
๊ณต๋ถ€ํ•˜๋Š” ์ฆ๊ฑฐ์›€

0๊ฐœ์˜ ๋Œ“๊ธ€