๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ


์˜ต์…˜๋“ค์„ forEach๋กœ ๋ฐ˜๋ณต์‹œ์ผœ์„œ ์ด๋ฒคํŠธ๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ event.target์œผ๋กœ ์˜ต์…˜๋“ค์˜ ๋ถ€๋ชจ์š”์†Œ ul์„ ์ฐธ์กฐํ•ด ์ด๋ฒคํŠธ๋ฅผ ์œ„์ž„์‹œํ‚ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ์ง€์•Š๊ณ ๋„ ์˜ต์…˜๋“ค์— ์ด๋ฒคํŠธ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์˜ต์…˜์ด ๋งŽ์•„์ง€๋ฉด ๋ฐ˜๋ณต๋ฌธ์ด ๋Œ์•„๊ฐˆ๋•Œ ์„ฑ๋Šฅ์ด์Šˆ๋„ ์žˆ์œผ๋‹ˆ ํƒ์›”ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

li ๋ถ€๋ชจ ํƒœ๊ทธ์ธ ulํƒœ๊ทธ์— ํ•œ ๋ฒˆ๋ฐ˜ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆํ•˜๋ฉด ๋œ๋‹ค. ๋ถ€๋ชจulํƒœ๊ทธ์— ํ•œ๋ฒˆ๋งŒ ๋“ฑ๋กํ•ด๋†“๊ณ  ์ž์‹ liํด๋ฆญ์‹œ(๋ฒ„๋ธ”๋ง์€ ๊ธฐ๋ณธ๊ฐ’) ๋ฒ„๋ธ”๋ง์„ ํ™œ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋กœ  li ์š”์†Œ๋“ค ์ „์ฒด๋ฅผ ๋‹ค๋ฃฐ์ˆ˜์žˆ๋‹ค. ๋‹จ ๋ชจ๋“  ์ด๋ฒคํŠธ๊ฐ€ ๋ฒ„๋ธ”๋ง์ด ๋ฐœ์ƒํ•˜๋Š”๊ฑด์•„๋‹ˆ๋‹ค. click์€ ๋ฒ„๋ธ”๋ง์ด ๊ธฐ๋ณธ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.

 

const billboard = document.querySelector('billboard');
const ul = document.querySelector('ul');
const h1 = document.querySelector('h1');
const button = document.querySelector('button');
let isETarget = 1;

const eTarget = (e) => {
  if (e.target.id !== 'ul') {
    h1.textContent = e.target.id;
  }
};

const eCurrentTarget = (e) => {
  h1.textContent = e.currentTarget.id;
};

button.addEventListener('click', function () {
  if (isETarget) {
    ul.removeEventListener('click', eTarget);
    ul.addEventListener('click', eCurrentTarget);
    isETarget = 0;
    button.textContent = 'e.currentTarget';
  } else {
    ul.removeEventListener('click', eCurrentTarget);
    ul.addEventListener('click', eTarget);
    isETarget = 1;
    button.textContent = 'e.target';
  }
});

ul.addEventListener('click', eTarget);

 

์ถ”๊ฐ€๋กœ liํƒœ๊ทธ๊ฐ€ ์•„๋‹Œ ํšŒ์ƒ‰ ์˜์—ญ์˜ ulํƒœ๊ทธ๊ฐ€ ๋ˆ„๋ฅด๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

 if (e.target.id !== 'ul') {
    h1.textContent = e.target.id;
  }

e.target์€ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์˜ ์ง„์›์ง€, e.currentTarget์€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์—ฐ๊ฒฐ ๋Œ€์ƒ์„ ๋œปํ•œ๋‹ค.

 

 

ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ด๋ฒคํŠธ๊ฐ€ ๋ฒ„๋ธ”๋ง ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

mouseover ์ด๋ฒคํŠธ๋Š” ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด ์ ์šฉ๋˜๋Š” ์ด๋ฒคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์˜ div ํƒœ๊ทธ ์•ˆ์— ๋“ค์–ด๊ฐ€๋„ ์ด๋ฒคํŠธ๋ฅผ ๋˜ ๋‹ค์‹œ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.  ๋ฐ˜๋ฉด์—, mouseenter ์ด๋ฒคํŠธ๋Š” ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ ์•ˆ์— ์žˆ๋Š”์ง€ ์™ธ๋ถ€์— ์žˆ๋Š”์ง€๋งŒ ๋”ฐ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๐Ÿ˜Ž

๋ฐ˜์‘ํ˜•