[JavaScript] Event

Posted by 신희준 on November 3, 2017


모덴웹을 위한 Javascript, JQuery입문 [윤인성 지음] 참고


2017 - 11 - 03 (금)

  • Event 용어
  • Default Event


  • Event 용어


    Event 는 사용자가 마우스를 클릭했을 때, 키보드를 눌렀을 때 시간이 지났을 때 등등 어떤 상황에 있어서 동작하는 것이다.


    이벤트에서는 알아야할 몇몇 용어들이 있다.

    window.onload = function(){console.log('hello world')}
    

    이러한 코드가 있을 때, window 객체의 onload 속성에 함수 자료형을 할당한다. 즉, 이벤트를 연결한다라고 한다. 이 때 onload 를 ‘이벤트 속성(EventProperty)’ 이라고 하며 이벤트 속성에 할당된 함수를 ‘이벤트 리스너(EventListener)’ 또는 ‘이벤트 핸들러(EventHandler)’ 라고 한다.



    Default 이벤트 제거 (비밀번호 확인)


      <form id ='my-form'>
        <label for="pw">비밀번호</label><br>
        <input type="password" id="pw" name = "pw">
        <label for ="pw_chk">비밀번호확인</label><br>
        <input type="password" id="pw_chk" name = "pw_chk">
        <input type = "submit" value ="제출"/>
      </form>  
    
      window.onload = function(){
        document.getElementById('my-form').onsubmit = function(){
          //입력 양식 유효성검사 (비밀번호 확인)
    
          var pw = document.getElementById('pw').value;
          var pwChk = document.getElementById('pw_chk').value;
    
          if(pw ==pwChk){
            alert('OK')
          }else{
            alert('비밀번호 확인 요망')
            return false;  // submit 디폴트 이벤트 제거
          }
        };
      };
    



    표준 이벤트 모델


    W3C 에서 공식적으로 지정한 DOM Level 2 의 이벤트 모델이다. (모든 브라우저에 공통적으로 적용되어야 함)

    • 메서드
      • addEventListener(eventName, handler, useCapture)
      • removeEventListener(eventName, handler)


    useCapture 매개변수의 경우 입력을 안할 시 false 가 default가 된다.

    • 사용방법
    window.onload = function(){
      var header = document.getElementById('header');
    
      header.addEventListener('click', function(){
        this.innerHTML += '+';
      });
    };
    


    • 주의점


    자바스크립트 코드에는 간혹 특정브라우저에서만 지원하는 메서드들이 있다. 확장성을 위해 W3C 표준 코드를 사용하는 것이 좋을 것 같다. 공통적인 코드를 사용하기 위해 잘알아볼 필요가 있다.