๐ ์ด์ด์ง๋ ๊ธ
- ์ด๋ฒคํธ ํ๋ก์ฐ(Event Flow) ← Now !
- ์ด๋ฒคํธ ๋ฒ๋ธ๋ง(Event Bubbling) + e.stopPropagation()
- ์ด๋ฒคํธ ์บก์ณ๋ง(Event Capturing)
- ์ด๋ฒคํธ ์์(Event delegation)
๐ ๋ค์ด๊ฐ๊ธฐ ์ ์?!
์ด๋ฒคํธ ํธ๋ค๋ฌ = ์ด๋ฒคํธ ๋ฆฌ์คํฐ = ์ด๋ฒคํธ ์ฝ๋ฐฑํจ์ (๋ชจ๋ ๊ฐ์ ๋ง!)
elementDiv.addEventListener('click', function(){ // ํด๋ฆญ์ ํ์ ๋
console.log('clickํ์ต๋๋ค') // ํ ์ผ
}, false); // ์ต์
// [์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ์ ].addEventListener( [์ด๋ค ํ๋์ ํ์ ๋],
// [ํ ์ผ],
// [์ต์
, useCapture Boolean์ผ๋ก ๋ฃ์ด์ฃผ๊ธฐ, ๋ํดํธ=false(๋ฒ๋ธ๋ง)] );
๐ค EventFlow??
์ฌ์ฉ์๊ฐ div
๋ฅผ ํด๋ฆญ
→ ๊ทธ ๋ฐ์์๋ body
์ html
๋ ๊ฐ์ด ํด๋ฆญ๋๋ค
→ body์ html์๋ ํด๋ฆญ์ด๋ฒคํธ๊ฐ ์์ผ๋ฉด(์์ผ๋ฉด ์ ๊ฒฝ์ฐ์งx) ๋ค ์คํ๋๊ฒ ๋๋ค.. ๋ง์น like ๋๋ฏธ๋ ธ
currentTarget
: ํ์ฌ ์ด๋ฒคํธ์ ์ฃผ์ธ, ์ง๊ธ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๊ณ ์๋ ์target
: ์ด๋ฒคํธ์ ์๋ฐ(ๅง็ผ)์ , ๋๊ตฌ๋๋ฌธ์ ์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๊ฑด์ง
div๊ฐ ํด๋ฆญ๋์ ๋, Capture → Target → Bubble ์์๋ก ์คํ ๋จ. ๋ฌด์กฐ๊ฑด!! ์บกํ๋ฒ ์์!!!
์ด๊ฑด ์ ํด์ง ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ๋ณ๊ฒฝํ ์ ์๋ค!
๐ ์ฐธ๊ณ
'๐๊ณต๋ถ > JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์ด๋ฒคํธ ์บก์ณ๋ง(Event Capturing) (0) | 2021.09.23 |
---|---|
[JavaScript] ์ด๋ฒคํธ ๋ฒ๋ธ๋ง(Event Bubbling) + e.stopPropagation() (0) | 2021.09.17 |
[JavaScript] IIFE(Immediately Invoked Function Expression) (0) | 2021.09.15 |
[JavaScript] ์ด๋ฒคํธ ๋ฃจํ (0) | 2021.08.14 |
[JavaScript] Arrow function vs Function (0) | 2021.07.28 |
๋๊ธ