๐ ๋ณธ ๊ธ์ 2022๋ 5์ 12์ผ ๊ฐ์ธgithub ์ ์์ฑ๋ ๊ธ์ ๋๋ค.
๐ currentTarget vs target
2์ฐจ ํํ๋ก์ ํธ์์ ๋ฐ์ํ ๋ฌธ์ ์ ์ด๋ค...!! ํ์์ฒ๋ผ e.target.value ๋ฅผ ์ด์ฉํด์ ํด๋ฆญํ ์์๋ฅผ ๊ฐ์ ธ์ฌ๋ ค๊ณ ํ์ผ๋, undefined ์ด ์ถ๋ ฅ๋์๋ค. ๋คํํ ๊ตฌ๊ธ๋ง์ ํตํด์ ์์๋ธ e.currentTarget.value ๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ ํด๊ฒฐ๋์๋ค.
๊ทธ๋ผ event target ์ currentTarget ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น..?
โ event.target vs event.currentTarget
๋ธ๋ก๊ทธ์ ๊ธฐ์ฌ๋์๋ ์ฝ๋๋ฅผ ๋จผ์ ์คํํด๋ณด์. (์ถ์ฒ ์๋์ ๊ธฐ์ฌ)
<body>
<tbody>
<div class="green" style="width: 300px; height: 300px; background-color: green;">
<div class="yellow" style="width: 200px; height: 200px; background-color: yellow;"></div>
</div>
</tr>
</tbody>
<script>
const green = document.querySelector('.green');
green.addEventListener('click',function(e){
console.log("currentTarget : ",e.currentTarget);
console.log("Target : ",e.target);
})
</script>
</body>
์์ ์ฝ๋๋ฅผ ์คํํ๊ณ , yellow์ ํด๋ฆญํ์๋ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ด ๋์จ๋ค.
green ์ด๋ผ๋ className ์ ๊ฐ์ง div์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ค์ ํ์๋๋ฐ, currentTarget ์ ์๊ธฐ์์ (์ด๋ฒคํธ๊ฐ ๋ฌ๋ ค์๋ ์์)๊ณผ ์์์์๊น์ง ์ถ๋ ฅ๋๋ ๊ฒ์, target ๋ ์์์์(๋ด๊ฐ ๋๋ฅธ ๋์!-> yellow)๋ง ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๊ทธ๋ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ํ๋ก์ ํธ ์ฝ๋๋ฅผ ์์๋ก ๋ค์ด๋ณด์. ์ผ๋จ ์ฝ๋๊ฐ ๋ณต์กํด์ ์์๋ก ๊ฐ๋จํ๊ฒ ๋ง๋ค์๋ค.
const SurveyContainer = () => {
const handleClickAnswer = (e) => {
console.log('e.target.value', e.target.value);
console.log('e.currentTarget.value', e.currentTarget.value);
};
return (
<>
<div>
<button onClick={handleClickAnswer} value={'button์ value'}>
<span>click</span>
</button>
</div>
</>
);
};
e.target.value ๋ฅผ ํ์ ๋ undefined ๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค! ์๋ํ๋ฉด ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ฌ๋ ค์๋ button ์ value ๊ฐ์ ์ง์ ํ๋๋ฐ, e.target.value ๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ด๊ฐ ํด๋ฆญํ ๋์์ธ span์ value ๊ฐ์ ์ถ๋ ฅํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ด๋ค..(๋ฌผ๋ก span ์๋ value ๊ฐ์ ์ฐ์ง ์๋๋ค..!)
โ ๏ธ ๋ค์ ํ๋ฒ ์ ๋ฆฌํ๋ฉด
โ
event.target : ๋ด๊ฐ ๋๋ฅธ ๋์! , ์ด๋ฒคํธ๊ฐ ๋ฌ๋ ค์๋ ์์์ ์์ ์์.
โ
event.currentTarget : ์ด๋ฒคํธ๊ฐ ๋ฌ๋ ค ์๋ ์์!
์ถ๊ฐ์ ์ผ๋ก MDN ์ ์๋ Event.currentTarget ์ ๋ํ ์ค๋ช ์ ์ฝ์ด๋ณด๋ฉด, ๋์ผํ ์ด๋ฒคํธํธ๋ค๋ฌ๋ฅผ ์ฌ๋ฌ ์์์ ์ฌ์ฉํ ๋ ํจ๊ณผ์ ์ด๋ผ๊ณ ํ๋ค!
๐ Reference
https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget
https://kyounghwan01.github.io/blog/JS/JSbasic/target-currentTarget/
'๐ WIL > ๐ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Polyfill์ด๋? (1) | 2024.12.08 |
---|---|
CustomEvent (3) | 2024.11.10 |
๐ก axios await/async vs then (0) | 2022.08.11 |
โ๏ธ ๋น๊ตฌ์กฐํ ํ ๋น (0) | 2022.08.10 |
๐ก ์์ ๋ณต์ฌ, ๊น์ ๋ณต์ฌ (0) | 2022.08.10 |