본문 바로가기

JAVASCRIPT

< JAVASCRIPT> 이벤트가 바인딩 되어있는지 확인하기 / 이벤트 확인하기 / addEventListener란?

 

 

 

 

 

 

이벤트를 바인딩하는 함수 addEventListener에 이어서 내가 붙여놓은 이벤트가 뭔지 확인해 보려면 어떻게 해야할까?

 

 

결과적으로 말하자면 그런 함수는 자체적으로 지원하지 않는다

 

 

나도 찾아보다가 getEventListners() 로 이벤트가 얼마나 바인딩 되어있는지 확인해 볼 수 있는 함수라고 해서 써봤는데 에러가 났다.

doc에서 이런 함수가 잇는지 찾아봤지만 역시나 없었다ㅋㅋㅋ

 

 

 

https://nodejs.org/docs/latest-v16.x/api/events.html#emitteraddlistenereventname-listener

 

Events | Node.js v16.20.0 Documentation

Events# Source Code: lib/events.js Much of the Node.js core API is built around an idiomatic asynchronous event-driven architecture in which certain kinds of objects (called "emitters") emit named events that cause Function objects ("listeners") to be call

nodejs.org

 

 

하지만 영 방법이 없는건 아니다. getEventListners() 도 npm으로 설치해서 사용할 수 있더라

 

 

https://www.npmjs.com/package/geteventlisteners

 

geteventlisteners

getEventListeners() : Returns an object containing all the event listeners of a DOM Node.. Latest version: 1.1.0, last published: 3 years ago. Start using geteventlisteners in your project by running `npm i geteventlisteners`. There is 1 other project in t

www.npmjs.com

 

 

설치를 하고

npm install geteventlisteners --save
npm i geteventlisteners

 

 

<script src='https://cdn.jsdelivr.net/gh/colxi/getEventListeners/src/getEventListeners.min.js'></script>

 

이렇게 스크립트에 포함시켜준다음 사용하면 된다.

 

 

예시

const myBtn = document.getElementById('내가지정한아이디');

myBtn.addEventListener('click', e => console.log('클릭함!'));

console.log(myBtn.getEventListner() );

 

 

물론 이것도 js 자체 기능이 아니긴하지만... 차선책으로 사용해볼만 할 것같다.

 

728x90