๋ฐ์ํ
e.target , e.curentTarget ์ฐจ์ด์
๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด,
e.target
:: ์ค์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ (๋๋ง ์ด๋ฒคํธ ๋ฐ์)e.currentTarget
:: ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ฌ๋ฆฐ ์์ (์์ ํด๋ฆญํด๋ ๋ถ๋ชจ๋ ์ด๋ฒคํธ ์์)
<div id="outer">outer
<div id="inner">inner
<button type="button" id="button">button</button>
</div>
</div>
const outer = document.getElementById('outer');
const inner = document.getElementById('inner');
const button = document.getElementById('button');
function printLog(e) {
const { target, e.currentTarget } = e;
console.log(`target: ${target.id}, currentTarget: ${currentTarget.id}`);
}
outer.addEventListener('click', printLog);
// target: outer, currentTarget: outer
inner.addEventListener('click', printLog);
// target: inner, currentTarget: inner, outer
button.addEventListener('click', printLog);
// target: button currentTarget: button, inner, outer
์ด๋ฒคํธ ๋ฒ๋ธ๋ง ๋ง๊ธฐ
function printLog(e) {
const {target, currentTarget} = e;
// ํด๋ฆญ๋ ๋์์ด ์๊ธฐ ์์ ์ผ ๋๋ง ๋ก์ง์ด ๋์ํ๋๋ก ์ฒ๋ฆฌํ๋ค.
if(target !== e.currentTarget) return;
console.log(`target: ${target.id}, currentTarget: ${currentTarget.id}`);
}
์ด๋ฒคํธ์์ ํ์ฉํ๊ธฐ
[์์ ] ํ ๊ธ์คํฌ๋ฆฝํธ ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ธฐ
<ul class="list">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
const ul = document.getElementByClassName('list')[0];
function toggleLineThrough(e) {
e.target.style.textDecoration = !e.target.style.textDecoration ? 'line-through' : '';
}
ul.addEventListener('click', toggleLineThrough);
Reference
https://db2dev.tistory.com/entry/JS-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%9D%98-target%EA%B3%BC-currentTarget-%EC%B0%A8%EC%9D%B4-with-%EB%B2%84%EB%B8%94%EB%A7%81
๋ฐ์ํ
'๐ฉ๐ปโ๐ปSTUDY > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ๋น๊ตฌ์กฐํ(๊ตฌ์กฐ๋ถํด) ํ ๋น (0) | 2023.01.30 |
---|---|
[JavaScript] ์ฐธ์กฐ์ ์ํ ๊ฐ์ฒด ๋ณต์ฌ (0) | 2022.01.25 |
[JavaScript] ๊ฐ์ฒด (0) | 2022.01.24 |
[JavaScript] nullish ๋ณํฉ ์ฐ์ฐ์ ?? (0) | 2022.01.24 |
[JavaScript] return์ด ํ๋ ์ผ (0) | 2021.11.26 |