๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

DOM์—์„œ ์š”์†Œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ๋Š” **์ž์‹ → ๋ถ€๋ชจ๋กœ ์ „ํŒŒ(๋ฒ„๋ธ”๋ง)**๋ฉ๋‹ˆ๋‹ค.
์ด ํŠน์„ฑ์„ ์ด์šฉํ•ด์„œ, “์—ฌ๋Ÿฌ ์ž์‹ ์š”์†Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  ๋ถ€๋ชจ ํ•˜๋‚˜์— ์ด๋ฒคํŠธ๋ฅผ ๋งก๊ธฐ๋Š” ๋ฐฉ์‹”์„ **์ด๋ฒคํŠธ ์œ„์ž„(Event Delegation)**์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


1. ๊ธฐ์กด ๋ฐฉ์‹: ์š”์†Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ ์ง์ ‘ ๋“ฑ๋ก

deleteBtn.addEventListener("click", function(){
    newDiv.remove();
})

โœ” ๋™์ž‘ ๋ฐฉ์‹

  • ์นด๋“œ 1๊ฐœ ์ƒ์„ฑ → ์‚ญ์ œ ๋ฒ„ํŠผ 1๊ฐœ → ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ 1๊ฐœ
  • ์นด๋“œ 100๊ฐœ ์ƒ์„ฑ → ์‚ญ์ œ ๋ฒ„ํŠผ 100๊ฐœ → ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ 100๊ฐœ

์ฆ‰, ์š”์†Œ ๊ฐœ์ˆ˜๋งŒํผ ์ด๋ฒคํŠธ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.

 

์ด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ :

  • ์นด๋“œ 100๊ฐœ๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋„ 100๊ฐœ ์ƒ๊น€
  • ์„ฑ๋Šฅ ๋–จ์–ด์ง€๊ณ  ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง
  • ๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋œ ์š”์†Œ๋Š” ์ฒ˜์Œ์—” ์ด๋ฒคํŠธ๊ฐ€ ์•ˆ ๋ถ™์–ด์žˆ์Œ

๊ทธ๋ž˜์„œ ์ด๋ฒคํŠธ ์œ„์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์Œ 


2. ์ด๋ฒคํŠธ ์œ„์ž„ ๋ฐฉ์‹: ๋ถ€๋ชจ์— ์ด๋ฒคํŠธ ํ•œ ๋ฒˆ๋งŒ ๋“ฑ๋ก

์‚ญ์ œ ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์‚ญ์ œ ๋ฒ„ํŠผ์— ๋ถ™์ด์ง€ ์•Š๊ณ 
๋ถ€๋ชจ ์š”์†Œ(cards) ํ•˜๋‚˜์—๋งŒ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

cards.addEventListener("click", function(e){
    if (e.target.classList.contains("delete-btn")) {
        e.target.parentElement.remove();
    }
});

โœ” ๋™์ž‘ ๋ฐฉ์‹

  • ํด๋ฆญ๋œ ์š”์†Œ๊ฐ€ .delete-btn์ธ์ง€ ์ฒดํฌ
  • ๋งž์œผ๋ฉด ํ•ด๋‹น ์นด๋“œ ์‚ญ์ œ
  • ์‚ญ์ œ ๋ฒ„ํŠผ์ด 10๊ฐœ๋“  100๊ฐœ๋“  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋‹จ ํ•˜๋‚˜

์žฅ์ :

  • ์„ฑ๋Šฅ ์ข‹์Œ (ํ•ธ๋“ค๋Ÿฌ 1๊ฐœ)
  • ๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋œ ์š”์†Œ๋„ ์ž๋™ ์ ์šฉ
  • ์ฝ”๋“œ๊ฐ€ ๋‹จ์ˆœํ•ด์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜ ํŽธํ•จ

3. ์‹ค์ œ ์ ์šฉ ํฌ์ธํŠธ

  • ๋ฆฌ์ŠคํŠธ๋‚˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๊ฐ€ ๋งŽ์„ ๋•Œ ํ•„์ˆ˜
  • ๋ฒ„ํŠผ, ๋ฉ”๋‰ด, ์•„์ดํ…œ ์‚ญ์ œ/ํ† ๊ธ€ ๋“ฑ์— ๋งค์šฐ ํšจ๊ณผ์ 
  • SPA, ๋™์  UI์—์„œ ๊ฑฐ์˜ ๊ธฐ๋ณธ ํŒจํ„ด์œผ๋กœ ์‚ฌ์šฉ๋จ

 

ํŠนํžˆ Vue/React ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๋ถ€ํ„ฐ
jQuery ์‹œ์ ˆ์—๋„ ๊ธฐ๋ณธ์ ์ธ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉ์‹์œผ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋˜ ํŒจํ„ด์ด๋‹ค.


๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ

์ด๋ฒคํŠธ ์œ„์ž„์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด:

“๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” UI๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด, ์ด๋ฒคํŠธ๋ฅผ ๋ถ€๋ชจ์—๊ฒŒ ํ•œ ๋ฒˆ๋งŒ ๋งก๊ธฐ๋Š” ๋ฐฉ์‹”

 

๋ฐ˜์‘ํ˜•