JavaScript

defaultPrevented ์ด๋ฒคํŠธ ์†์„ฑ ๊ฐœ๋… ์ด์ •๋ฆฌ

martinooo 2024. 3. 13. 17:11

 

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ javascript ์ด๋ฒคํŠธ์™€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ์ดํ•ด


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์— ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ ์ž์šฉ์ž ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ action์„ ํ†ตํ•ด์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

์ด๋ฅผ ํ™œ์šฉํ•ด ์›น ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฒคํŠธ๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋งก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ document ๋กœ๋”ฉ์„ ์™„๋ฃŒํ•˜๋ฉด load ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด click ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ๋Š” ํ•œ ๋ฒˆ, ์—ฌ๋Ÿฌ ๋ฒˆ ๋˜๋Š” ์ „ํ˜€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜ ์ƒ์„ฑํ•œ ์ด๋ฒคํŠธ๋Š” ์–ธ์ œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ชจ๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ฆ‰์‹œ ๋ฐ˜์‘ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” addEventListener() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํŠน์ • HTML ์š”์†Œ์— ์ด๋ฒคํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ฒŒ ํ•ด ์ฃผ๊ณ  ์š”์†Œ๋‹น ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค.

 


 

๐Ÿคท‍โ™‚๏ธ addEventListener ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

target.addEventListener(event, function, useCapture);

 

addEventListener ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

https://cometruedream.tistory.com/19

 

์˜ค๋Š˜์€ addEventListener ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด์š”!

addEventListener๋Š” event ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ž…๋‹ˆ๋‹ค ์‚ฌ์šฉ๋ฐฉ์‹๋ฌธ๋ฒ•๋˜ํ•œ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๊ฐ์ฒด.addEventListener('์ด๋ฒคํŠธ ์ข…๋ฅ˜' , ํ•จ์ˆ˜) or ๊ฐ์ฒด.addEventListener('์ด๋ฒคํŠธ ์ข…๋ฅ˜' , function(){ })

cometruedream.tistory.com

 


 

๐Ÿคท‍โ™‚๏ธ defaultPrevented ์ด๋ฒคํŠธ ์†์„ฑ

defaultPrevented ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ ์•Œ๊ธฐ์— ์•ž์„œ preventDefault ์™€ stopPropagation ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž


preventDefault ๋ž€?

a ํƒœ๊ทธ๋‚˜ submit ํƒœ๊ทธ๋Š” ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด href ๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๊ฑฐ๋‚˜ , ์ฐฝ์ด ์ƒˆ๋กœ๊ณ ์นจํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. preventDefault ๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋™์ž‘์„ ๋ง‰์•„์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š”
1. a ํƒœ๊ทธ๋ฅผ ๋ˆŒ๋ €์„๋•Œ๋„ href ๋งํฌ๋กœ ์ด๋™ํ•˜์ง€ ์•Š๊ฒŒ ํ•  ๊ฒฝ์šฐ
2. form ์•ˆ์— submit ์—ญํ• ์„ ํ•˜๋Š” ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์–ด๋„ ์ƒˆ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๊ณ ์‹ถ์„ ๊ฒฝ์šฐ (submit์€ ์ž‘๋™๋จ)

ex:
<a href="https://cometruedream.tistory.com/">๊ฟˆ๋งŽ์€ ๊ฐœ๋ฐœ์ž</a>

$("a").click(function(e){
      e.preventDefault();
     alert("e.preventDefault()");
});

 

stopPropagation ๋ž€?

e.stopPropagation๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ์— ์ „๋‹ฌ๋˜์ง€ ์•Š๊ฒŒ ๋ง‰์•„ ์ค€๋‹ค.
 
ex: 
<div class="first-cover">
  <ul class="second-cover">
    <li class="third-cover">
      <div class="last-el">event</div>
    </li>
  </ul>
</div>

e.stopPropagation ์ถ”๊ฐ€ ์‹œํ‚ด์œผ๋กœ ์ƒ์œ„์— ์ „๋‹ฌ๋˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ง‰์•„์ค€๋‹ค. 
$(".last-el").click(function(e){
e.stopPropagation();
alert("last-el");
});

$(".third-cover").click(function(){
alert("third-cover");
});

$(".second-cover").click(function(){
alert("second-cover");
});

$(".first-cover").click(function(){
alert("first-cover");
});

 

์ •์˜ ๋ฐ ์‚ฌ์šฉ

defaultPrevented ์ด๋ฒคํŠธ ์†์„ฑ์€ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด preventDefault() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ

๋งํฌ๊ฐ€ URL์„ ์—ฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  preventDefault()๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

document.getElementById("myAnchor").addEventListener("click", function(event){  
     event.preventDefault()  alert("Was preventDefault() called: " + event.defaultPrevented);
});

 

 

๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ

๋ฐ˜ํ™˜ ๊ฐ’: ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด preventDefault() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ฐ’:
• true - ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด preventDefault() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
• false - ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด preventDefault() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 


URL์ธ์ฝ”๋”ฉ & ๋””์ฝ”๋”ฉ ํ•ด๋ณด๊ธฐ