programing

요소 / 문서에 연결된 JavaScript 이벤트 리스너 / 핸들러가 있는지 확인하는 방법은 무엇입니까?

nasanasas 2020. 10. 17. 10:37
반응형

요소 / 문서에 연결된 JavaScript 이벤트 리스너 / 핸들러가 있는지 확인하는 방법은 무엇입니까?


이 질문에 이미 답변이 있습니다.

온라인 검색을 시도했지만 검색 쿼리를 제대로 작성할 수없는 것 같습니다.

간단하게 들리 겠지만, jquery를 사용하거나 자바 스크립트를 사용하여 요소 / 문서 / 창에 첨부되거나 dom에있는 모든 핸들러 또는 이벤트 리스너를 어떻게 나열 할 수 있습니까?

그냥 궁금해.

미리 감사드립니다.


1.8 이전의 jQuery에서는 다음을 사용해보십시오. $("#element").data("events")

편집하다:

jQuery 확장도 있습니다 : listHandlers


디버깅 할 때 이벤트가 있는지 확인하려면 Chrome 개발자 도구의 Visual Event 또는 Elements 섹션을 사용하는 것이 좋습니다 . 요소를 선택하고 오른쪽 하단에서 "Event Listeners"를 찾습니다 .

코드에서 버전 1.8 이전의 jQuery를 사용하는 경우 다음을 사용할 수 있습니다.

$(selector).data("events")

이벤트를 얻으려면. 버전 1.8부터이 기능은 중단되었습니다 ( 이 버그 티켓 참조 ). 당신이 사용할 수있는:

$._data(element, "events")

그러나 이것은 내부 jQuery 구조이기 때문에 권장되지 않으며 향후 릴리스에서 변경 될 수 있습니다.

이 질문 에는 유용한 답변이 있지만 그중 어느 것도 그와 같은 방식으로 특히 우아하지 않습니다 $(selector).data("events").


jQuery없이 :

elem.addEventListener () 메서드를 사용하여 리스너를 추가 한 경우 이러한 리스너를 나열하는 것은 쉽지 않습니다. EventTarget.addEventListener () 메서드를 직접 래핑하여 재정의 할 수 있습니다. 그런 다음 정보, 등록 된 리스너가 있습니다.

var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
  this.f = f;
  this.f(type, fn, capture); // call original method
  alert('Added Event Listener: on' + type);
}

작업 예제는 http://jsfiddle.net/tomas1000r/RDW7F/ 에서 찾을 수 있습니다.


방금 시각 이벤트 2를 발견했습니다.

http://www.sprymedia.co.uk/article/Visual+Event+2

"make it go 섹션"으로 이동하여 텍스트 링크를 책갈피 도구 모음으로 끌어 이벤트가있는 페이지로 이동하고 책갈피를 클릭하십시오.

FF Mac에서 테스트

참고 URL : https://stackoverflow.com/questions/2382994/how-to-check-if-any-javascript-event-listeners-handlers-attached-to-an-element-d

반응형