본문 바로가기

Javascript

Javascript 등록한 event 확인하는 방법

화면 로딩 후 자바스크립트로 HTML 엘리먼트를 동적으로 생성하고 이벤트 핸들러를 추가한 경우, 순수 자바스크립트로 해당 엘리먼트의 이벤트 등록 여부를 확인할 수 있는 방법이다.

EventTarget.prototype._addEventListener = EventTarget.prototype.addEventListener;

EventTarget.prototype.addEventListener = function(a, b, c) {
  if(c == undefined) c = false;
  this._addEventListener(a, b, c);
  if(!this.eventListenerList) this.eventListenerList = {};
  if(!this.eventListenerList[a]) this.eventListenerList[a] = [];
  this.eventListenerList[a].push({listener: b, options: c});
};

EventTarget.prototype._getEventListeners = function(a) {
  if(!this.eventListenerList) this.eventListenerList = {};
  if(a == undefined) return this.eventListenerList;
  return this.eventListenerList[a];
};

// 자바스크립트로 동적으로 생성한 엘리먼트에 이벤트 등록 여부 체크
let events = element._getEventListeners(); // 해당 엘리먼트의 이벤트 목록
console.log(events['click']); // 해당 이벤트명을 넣어 확인