728x90
JavaScript์ preventDefault ๋ฉ์๋: ๊ฐ๋ , ํ์ฉ, ์ฅ๋จ์
1. preventDefault๋?
preventDefault๋ ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ๋์์ ์ทจ์ํ๋ ๋ฉ์๋๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์์ ํธ์ถ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ํํ๋ ๊ธฐ๋ณธ ๋์์ ์ค๋จํ๊ณ ์์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
2. preventDefault์ ์ญํ
- ๊ธฐ๋ณธ ๋์ ์ฐจ๋จ: preventDefault๋ ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ๋์(์: ๋งํฌ ํด๋ฆญ ์ ํ์ด์ง ์ด๋)์ ์ฐจ๋จํ์ฌ ์์ฒด์ ์ธ ๋์์ ์ํํ ์ ์๊ฒ ํฉ๋๋ค.
3. ์ด๋ ์ํฉ์ preventDefault๋ฅผ ์ฌ์ฉํด์ผํ๋๊ฐ?
- ํผ ์ ์ถ ์ด๋ฒคํธ: ํผ ์ ์ถ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ๋๋ ๊ฒ์ ๋ง๊ณ , JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋งํฌ ํด๋ฆญ ์ด๋ฒคํธ: ๋งํฌ๋ฅผ ํด๋ฆญํ ๋ ํ์ด์ง ์ด๋์ ๋ง๊ณ , ๋ชจ๋ฌ ์ฐฝ์ด๋ ํน์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ํค๋ณด๋ ์ด๋ฒคํธ: ํน์ ํค์ ๊ธฐ๋ณธ ๋์(์: ์คํ์ด์ค๋ฐ๋ก ์คํฌ๋กค)์ ๋ง๊ณ , ์ฌ์ฉ์ ์ ์ ๋์์ ์ํํ ์ ์์ต๋๋ค.
4. preventDefault์ ์ฅ๋จ์
์ฅ์ :
- ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ : ์ฌ์ฉ์๊ฐ ์๋ํ์ง ์์ ๋์(์: ํ์ด์ง ์ด๋)์ ๋ฐฉ์งํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค.
- ๋์ ์ ์ด: ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ๊ธฐ๋ณธ ๋์์ ์ค๋จํ๊ณ ์ฌ์ฉ์ ์ ์ ๋์์ ์ถ๊ฐ๋ก ์ํํ ์ ์์ต๋๋ค.
๋จ์ :
- ์๋ชป ์ฌ์ฉ ์ ์ค๋ฅ ๋ฐ์: ํ์ ์ด์์ผ๋ก ๊ธฐ๋ณธ ๋์์ ๋ง์ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋ ์ ์์ต๋๋ค.
5. preventDefault๋ฅผ ์ดํดํ ์ ์๋ ์์ ์ฝ๋
ํผ ์ ์ถ ์ด๋ฒคํธ์์ preventDefault ์ฌ์ฉ
document.querySelector('form').addEventListener('submit', function(event) {
event.preventDefault(); // ๊ธฐ๋ณธ ์ ์ถ ๋์ ์ฐจ๋จ
// ํผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋น๋๊ธฐ์์ผ๋ก ์๋ฒ์ ์ ์ก
});
๋งํฌ ํด๋ฆญ ์ด๋ฒคํธ์์ preventDefault ์ฌ์ฉ
document.querySelector('a').addEventListener('click', function(event) {
event.preventDefault(); // ๋งํฌ์ ๊ธฐ๋ณธ ๋์(ํ์ด์ง ์ด๋) ์ฐจ๋จ
// ๋ชจ๋ฌ ์ฐฝ ์ด๊ธฐ ๋ฑ์ ์ฌ์ฉ์ ์ ์ ๋์ ์ํ
});
ํค๋ณด๋ ์ด๋ฒคํธ์์ preventDefault ์ฌ์ฉ
window.addEventListener('keydown', function(event) {
if (event.key === ' ') {
event.preventDefault(); // ์คํ์ด์ค๋ฐ์ ๊ธฐ๋ณธ ์คํฌ๋กค ๋์ ์ฐจ๋จ
// ์ถ๊ฐ๋ก ์ฌ์ฉ์ ์ ์ ๋์ ์ํ
}
});
6. ์ฐ๊ด๋ ๊ธฐ์
- stopPropagation(): ์ด๋ฒคํธ ์ ํ๋ฅผ ์ค์งํ๋ ๋ฉ์๋๋ก, preventDefault์ ํจ๊ป ์ฌ์ฉํ์ฌ ๋ถ๋ชจ ์์๋ก์ ์ด๋ฒคํธ ์ ํ๋ฅผ ์ฐจ๋จํ ์ ์์ต๋๋ค.
- addEventListener(): ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ ๋ฉ์๋๋ก, preventDefault๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ๋ก ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
preventDefault๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ ์ํธ ์์ฉ์ ๊ด๋ฆฌํ๊ณ ๊ฐ์ ํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ ์ ์ฃผ์ํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉํด์ผ ํฉ๋๋ค.
๋๊ธ