본문 바로가기

IT개발 과정 [취성패 학원]/jQuery

[jQuery] 09. 이벤트

이벤트 핸들러(이벤트발생시 실행될 function) 연결 방법 종류

방법1. 이벤트 메소드를 통한 연결

  • $("선택자").이벤트메소드(function(){ 해당 요소에 해당 이벤트 발생시 실행할 내용; });
<h4 id="test1">클릭해보세요</h4>

<script>
  $(function(){ // 클릭이벤트
    $("#test1").click(function(){
      $(this).html("클릭되었습니다!!");
    });

    $("#test1").dblclick(function(){
      $(this).css("color", "red");
    });
  })
</script>

방법2. on메소드를 이용한 방법

  • $("선택자").on("이벤트명", function(){ 해당 요소에 해당 이벤트 발생시 실행할 내용; });
  • on 메소드를 통해 이벤트 연결시 한 요소에 다중으로 이벤트걸기 가능
<h4 id="test2">마우스 클릭 및 올려보세요</h4>

<script>
  $(function(){
    /*
    $("#test2").on("click", function(){
    $(this).css("backgroundColor", "orangered").text("클릭됨");
    });
    */

    // on메소드를 통해 이벤트 연결시
    // 한 요소에 다중으로 이벤트걸기 가능함
    $("#test2").on({"mouseenter":function(){
      $(this).css("backgroundColor", "yellowgreen").text("마우스 올라감");
    }, "mouseout":function(){
      $(this).css("background", "yellow").text("마우스 빠져나감");
    }, "click":function(){
    // click이라는 이벤트 발생시 실행할 내용
    // => 기존에 걸려있던 mouseenter, mouseout 이벤트 핸들러 제거
    // off메소드 : 이벤트 핸들러 제거
    $(this).off("mouseenter").off("mouseout").css("backgroundColor", "orangered").text("이벤트 제거됨");
    }});
  })
</script>

방법3.

  • $("상위요소선택자").on("이벤트명","하위요소선택자",function(){
              선택된 상위요소 안에 존재하는 해당 하위요소에 해당 이벤트가 발생했을때 실행할 내용;
    })
  • 동적으로 만들어진 요소에도 동일한 이벤트를 적용시키고자 한다면 반드시 방법3 사용
    • 동적으로 만들어진 요소 : 처음에 문서 로딩시에는 없다가 나중에 새로이 만들어지는 요소
<div id="wrap2" style="border: 1px solid red;">
  <h6>기존에 존재하는 요소</h6>
</div>

<script>
  $(function(){

    // 방법1. 이벤트메소드  => 동적으로 만들어진 요소에 이벤트 적용안됨
    /*
    $("#wrap2>h6").click(function(){
      $("#wrap2").append("<h6>클릭으로 인해 동적으로 만들어진 요소</h6>");
    });
    */

    // 방법2. on메소드      => 동적으로 만들어진 요소에 이벤트 적용안됨
    /*
    $("#wrap2>h6").on("click", function(){
      $("#wrap2").append("<h6>클릭으로 인해 동적으로 만들어진 요소</h6>");
    })
    */

    // 방법3.               => 동적으로 만들어진 요소에도 이벤트 적용됨!!
    $("#wrap2").on("click"," h6", function(){
      $("#wrap2").append("<h6>클릭으로 인해 동적으로 만들어진 요소</h6>");
    })

  })
</script>
  • 방법1, 방법2는 이벤트가 적용 X → 클릭으로 인해 만들어진 요소를 클릭하면 새 요소가 만들어지지 않음
  • 방법3은 이벤트가 적용O → 새 요소를 클릭하면 또다른 새 요소가 만들어짐

일회성 이벤트

  • 이벤트를 딱 한번만 연결할 때 사용
  • $(선택자).one("이벤트명", function(){ 해당 요소에 해당 이벤트 발생시 실행할 내용; });

키보드 관련 이벤트

  • keydown / keypress : 키가 눌려질때 발생하는 이벤트
    • keydown : 키보드의 모든 키가 눌려질때 발생됨
    • keypress : 키보드의 펑션키, 기능키, 한글 제외한 나머지 키가 눌려질때
  • keyup : 키가 떼어질때 발생하는 이벤트