
์ต์
๋ค์ 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 ์ด๋ฒคํธ๋ ํด๋น ์๋ฆฌ๋จผํธ ์์ ์๋์ง ์ธ๋ถ์ ์๋์ง๋ง ๋ฐ์ง๊ธฐ ๋๋ฌธ์ ์ด๋ฒคํธ๊ฐ ํ ๋ฒ๋ง ๋ฐ์ํ๊ฒ ๋๋ค. ๐
'๐ Front > ๐ฑ Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋ํผ ๊ฐ์ฒด: ์์ ํ์ ์ด ๋ฉ์๋๋ฅผ ๊ฐ๋ ์ด์ (0) | 2022.02.02 |
|---|---|
| [native code]: ๋ ๋๊ตฌ๋, ์ฝ๋๋ฅผ ๋ด๋๊ฑฐ๋ผ! (0) | 2022.01.30 |
| [DOM] Javascript๋ก html์ ์กฐ์ํด๋ณด์ (0) | 2022.01.17 |
| ํ๋กํ ํ์ : ์๋ฐ์คํฌ๋ฆฝํธ์ ํต์ฌ ์ฒ ํ (์ ๋ฆฌ) (0) | 2022.01.11 |
| ๋ถ๋ณ๊ฐ๊ณผ ๊ฐ๋ณ๊ฐ์ ๋๋๋ ๊ธฐ์ค์ ๋ญ๊น? (0) | 2022.01.07 |