๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JavaScript

[ JS ] Event.stopPropagation์™€ Event.preventDefault ์˜ ์ฐจ์ด์  ์•Œ์•„๋ณด๊ธฐ.

 

JavaScript์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์ข…์ข… ํ˜ผ๋™๋˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ์ธ Event.stopPropagation()๊ณผ Event.preventDefault()์— ๋Œ€ํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

 

 


 

 

Event.stopPropagation()

 

 


`stopPropagation()` ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฒคํŠธ์˜ ๋ฒ„๋ธ”๋ง์„ ์ค‘์ง€์‹œํ‚จ๋‹ค. 

 

 

element.addEventListener('click', function(event) {
    event.stopPropagation();
    // ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋กœ์ง
});

 

 


์ฃผ์š” ํŠน์ง• )

- ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์œ„ ์š”์†Œ๋กœ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.
- ์ค‘์ฒฉ๋œ ์š”์†Œ์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค.

 

 

 


์‚ฌ์šฉ ์˜ˆ์‹œ )

์ค‘์ฒฉ๋œ div์—์„œ ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ํ•ด๋‹น div์—์„œ๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด:

innerDiv.addEventListener('click', function(event) {
    event.stopPropagation();
    console.log('Inner div clicked!');
});

outerDiv.addEventListener('click', function() {
    console.log('Outer div clicked!'); // ์ด ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.
});

 

 

 


 



Event.preventDefault()

 


`preventDefault()` ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฒคํŠธ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ทจ์†Œํ•œ๋‹ค.

element.addEventListener('click', function(event) {
    event.preventDefault();
    // ์ปค์Šคํ…€ ๋กœ์ง
});



์ฃผ์š” ํŠน์ง•)
- ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ง‰๋Š”๋‹ค.
- ์ด๋ฒคํŠธ ์ž์ฒด๋Š” ๊ณ„์† ์ „ํŒŒ๋œ๋‹ค.

 

 


์‚ฌ์šฉ ์˜ˆ์‹œ)
๋งํฌ ํด๋ฆญ ์‹œ ํŽ˜์ด์ง€ ์ด๋™์„ ๋ง‰๊ณ  ์‹ถ๋‹ค๋ฉด:

link.addEventListener('click', function(event) {
    event.preventDefault();
    console.log('๋งํฌ๊ฐ€ ํด๋ฆญ๋˜์—ˆ์ง€๋งŒ, ํŽ˜์ด์ง€ ์ด๋™์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.');
});

 

 

 



์‰ฌ์šด ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

1. `stopPropagation()`: ๋ฐฉ์Œ๋ฒฝ
   - ์ด๋ฒคํŠธ(์†Œ๋ฆฌ)๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ํผ์ ธ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.

2. `preventDefault()`: ์ž๋™์ฐจ ๋ธŒ๋ ˆ์ดํฌ
   - ์ด๋ฒคํŠธ์˜ ๊ธฐ๋ณธ ๋™์ž‘(์ž๋™์ฐจ์˜ ์›€์ง์ž„)์„ ๋ฉˆ์ถ˜๋‹ค.



`stopPropagation()`๊ณผ `preventDefault()`๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๋ฉ”์„œ๋“œ๋กœ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋‘ ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ํ™œ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง์„ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค. 

 

 

 


 

๐ŸŒธ ์ถœ์ฒ˜ ๐ŸŒธ

 

eventPreventDefault - MDN

eventStopPropagation - MDN