Javascript

[12/13] 이벤트 등록

weicome 2017. 12. 14. 09:07


inline


_ 이벤트가 발생한 대상을 필요로 하는 경우 this를 통해서 참조 (이벤트가 동작하고 있는 Element를 가리킴)

ex) <input type="button" id="target" onclick="alert('Hello world, ' + this.value)"; value="button" />

    _ 장점 : 태그에 직접기술되어 찾기 쉽다

    _ 단점 : javascript가 html(정보)에 혼재되어 있기 때문에 관리가 어렵다. 속성안에 작성하기 때문에 복잡한 코드 작성이 어렵다



    property listener


    _ 이벤트 객체는 이벤트가 실행될 때 이벤트 핸들러의 인자로 전달된다
    _ 현재 발생한 이벤트에 대한 다양한 정보를 얻을 수 있다

      _ event.target : 이벤트 발생시점에서 이벤트 발생 지점을 확인

      _ IE8이하 버전에서는 event 객체를 핸들러 객체의 인자가 아닌 전역객체로 제공한다
      ex) window.event 
      _ IE8이하 버전 대응을 위한 코드 예시 
      var event = event || window.event

      _IE8이하 버전에서는 event.target 대신 event.srcElement를 제공
      var taget = event.target || event.srcElement


      addEventListener()

      _ 이벤트 등록하는 가장 권장되는 방식.

      _ 위 객체가 click 이벤트가 발생했을 때, 두번째 인자로 전달한 이벤트 리스너가 동작하면서 event 객체를 반환한다.


      _ ie8이하 호환 예제, ie8이하에서는 attachEvent 사용.


      _ addEventListener의 장점의 경우 복수의 동일 이벤트 타입 리스너를 등록할 수 있음

      _ eventListener를 하나만 생성해서 재활용 할 수 있음