.cart์ ํด๋ฆญ ์ด๋ฒคํธ ๊ฑธ์์.element.classList.contains('์ญ์ ๋ฒํผ')์ผ๋ก ์ฒดํฌํด์ ์ญ์ ๋์ ์ฒ๋ฆฌ.element.parentElement.classList.contains('increase-btn') ๋๋ ๋น์ทํ ๋ฐฉ์์ผ๋ก ๋ถ๋ชจ๋ฅผ ์ฒดํฌํด์ ์ฒ๋ฆฌํ์ฌ.e.target์ผ๋ก ํด๋ฆญํ ์์๋ ๋ค ์กํ๋ ๊ฑฐ ์๋๊ฐ? ๊ทธ ์์ ๋ด๊ฐ ์ํ๋ ํด๋์ค๊ฐ ์์ผ๋ฉด ๊ทธ๊ฑธ๋ก ์ฒดํฌํ๋ฉด ๋๋ ๊ฑฐ ์๋๊ฐ?element.classList.contains('์๋์ฆ๊ฐ๋ฒํผ')์ด๋ ๊ฒ ํด๋ ๋๋๊ฑฐ ์๋๊ฐ..?e.target์ ์ค์ ํด๋ฆญํ ์์ ๊ทธ ์์ฒด (๊ฐ์ฅ ์์ชฝ ์์)e.currentTarget์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋จ ์์ (์: .cart)์๋ ๋ฒํผ <button class="increase-btn"> ์์ <img>๋ <i> ๊ฐ์ ์์๊ฐ ์์.
์ฌ์ฉ์๊ฐ <i>๋ฅผ ํด๋ฆญํ๋ฉด:
e.target โ <i><i>๋ "increase-btn" ํด๋์ค๋ฅผ ์ ๊ฐ์ง โ classList.contains('increase-btn') โ falseclosest() - ์ด๊ฑด ๋ด๊ฐ ์๊ฐํ๋๋ฐ๋ก ๋ฐ์์์ผ์ฃผ๋ ํจ์!e.target.closest('.increase-btn') ์ฌ์ฉํ๋ฉด
"increase-btn" ํด๋์ค๋ฅผ ๊ฐ์ง ๊ฐ์ฅ ๊ฐ๊น์ด ์กฐ์ ์ฐพ์<img>๋ <button>์ด๋ ์ ๋ถ ์ปค๋ฒ ๊ฐ๋ฅnull ๋ฐํ โ ์กฐ๊ฑด ์ฒดํฌํ๊ธฐ ์ฌ์document.querySelector('.cart').addEventListener('click', (e) => {
const increaseButton = e.target.closest('.increase-btn');
if (increaseButton) {
console.log('์๋ ์ฆ๊ฐ!');
// ์๋ ๋๋ฆฌ๋ ์ฝ๋
}
const deleteButton = e.target.closest('.delete-btn');
if (deleteButton) {
console.log('์์ดํ
์ญ์ !');
// ์ญ์ ์ฝ๋
}
});
| ๊ฐ๋ | ์ค๋ช |
|---|---|
e.target | ์ค์ ํด๋ฆญ๋ ์์ (์: <i>) |
e.currentTarget | ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋จ ๋ถ๋ชจ ์์ (์: .cart) |
.classList.contains() | ํด๋น ์์๊ฐ ํด๋์ค ๊ฐ์ง๊ณ ์๋์ง ๊ฒ์ฌ |
.closest('.ํด๋์ค') | ํด๋ฆญ๋ ์์๋ถํฐ ์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ํด๋์ค ๊ฐ์ง ๋ถ๋ชจ ์์ ์ฐพ๊ธฐ |
| โ ์ด์ | ๋ฒํผ ์์ ์์ด์ฝ ๋ฑ ํด๋ฆญ ์๋ํด๋, ์ ํํ ๋ฒํผ์ ๊ฐ์งํด์ผ ํ๋๊น |