피카부 RSS 태그 관리 글쓰기 방명록 다시 시작하는 개발 블로그
2018-12-19 14:18:56

preventDefault(); 사용하기

새로운 요소에 전달하면서 a태그 링크 기능을 무효화 시킨다.

<html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="./foo.js"></script>
  </head>
  <body>
    <section id="Container">
      <div id="Content">
        <a href="#">클릭은 무효화시키고 div에 foo 클래스가 추가 된다.</a>
      </div>    
    </section>
  </body>
</html>
$(function(){
  $('a').click(function(event){
    event.preventDefault();
    $("div#Content").addClass("foo");
  });
});

a태그가 클릭된 경우에도 preventDefault 메소드를 추가 하여 a태그 자체 링크 기능을 무효화 하면서 새로운 요소인 div#Content에 클릭 이벤트를 전달하는게 가능

return false; 사용하기

<html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="./foo.js"></script>
  </head>
  <body>
    <section id="Container">
      <div id="Content">
        <a href="#">클릭은 무효화시키고 div에 foo 클래스가 추가 된다.</a>
      </div>    
    </section>
  </body>
</html>


실제 동작은 return false;를 반환한 뒤 a태그 자체의 링크 기능을 무효화하고, 그 클릭 이벤트를 새로운 요소에 전달하지 않는다.

$(function(){
  $('a').click(function(){
    $("div#Content").addClass("foo");
    return false;
  });
});

예를들면 return false;를 addClass 메소드 전에 전에 가져오면 클릭 이벤트가 신요소에 전달되지 않으므로 신요소에 foo 클래스가 생성되지 않는다.