화면 로딩 후 자바스크립트로 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']); // 해당 이벤트명을 넣어 확인
'Javascript' 카테고리의 다른 글
JSP 파일에서 Javascript 사용 시 backtick(`) 사용방법 (0) | 2023.01.06 |
---|---|
Javascript 변수값 변경 감지 (0) | 2023.01.06 |
Javascript 화면 크기 구하기 (0) | 2023.01.02 |
Javascript 페이지 이동 방법 (0) | 2023.01.02 |