Chrome DevTools의 요소에서 발생한 이벤트를 보려면 어떻게합니까?


603

라이브러리의 페이지에 사용자 정의 가능한 양식 요소가 있습니다. 사용할 이벤트 핸들러를 찾으려고하기 때문에 상호 작용할 때 어떤 JavaScript 이벤트가 발생하는지 확인하고 싶습니다.

Chrome 웹 개발자를 사용하여 어떻게합니까?


13
이 북마크는 도움이 될 수 있습니다 : sprymedia.co.uk/article/Visual+Event+2
scytale

1
여기에 대한 답변은 가치가 있지만 ^ 위의 북마크는 실제로 내 문제를 해결 한 것입니다. sprymedia.co.uk/article/Visual+Event+2
Jazzy

답변:


877
  • 히트 F12열려있는 개발 도구에
  • 소스 탭을 클릭하십시오
  • 오른쪽에서 "이벤트 리스너 중단 점"으로 스크롤하고 트리를 펼치십시오.
  • 듣고 싶은 이벤트를 클릭하십시오.
  • 대상 요소와 상호 작용합니다. 발사하면 디버거에 중단 점이 생깁니다.

마찬가지로 대상 요소를 마우스 오른쪽 버튼으로 클릭하고 "요소 검사"를 선택하십시오. 개발자 프레임의 오른쪽에서 아래로 스크롤하십시오. 맨 아래에는 '이벤트 리스너'가 있습니다. 트리를 확장하여 요소에 첨부 된 이벤트를 확인하십시오. 이것이 버블 링을 통해 처리되는 이벤트에 작동하는지 확실하지 않습니다 (추천하지 않습니다)


11
이 솔루션은 중단 점이 흐름을 죽이기 때문에 마우스 이벤트 인 경우 문제가됩니다.
WendyG

67
모든 이벤트가 축소 된 jquery를 가리 키지 않으면 어떻게해야합니까? jquery를 사용하는 함수에 어떻게 도달합니까?
Muhammad Umer

14
내가 만든 맞춤 이벤트를 보여줄 수 있습니까? 내가 처음으로 생각했던 삶이 바뀌 었다는 것을 읽었을 때. 내가 뭔가를 그리워합니까?
Tebe

24
@MuhammadUmer jQuery를 블랙 박스하여 Chrome에서 건너 뛰어 소스 코드로 바로 이동할 수 있습니다. developer.chrome.com/devtools/docs/blackboxing
Matt Zeunert

1
@MuhammadUmer JQuery 사용을 중단하면 어떻게 되나요?
John Balvin Arias 2018 년

831

monitorEvents 기능을 사용할 수 있습니다 .

요소를 검사하고 ( 표시되는 요소에서 right mouse clickInspect또는 ElementsChrome 개발자 도구의 탭으로 이동하여 원하는 요소를 선택) Console탭으로 이동하여 다음을 작성하십시오.

monitorEvents($0)

이제이 요소 위로 마우스를 가져 가거나 초점을 맞추거나 클릭하면 시작된 이벤트의 이름이 해당 데이터와 함께 표시됩니다.

이 데이터를 얻는 것을 멈추려면 이것을 콘솔에 쓰십시오.

unmonitorEvents($0)

$0Chrome 개발자 도구에서 선택한 마지막 DOM 요소입니다. 다른 DOM 객체를 전달할 수 있습니다 (예 : getElementById또는 querySelector).

또한 이벤트 "type"을 두 번째 매개 변수로 지정하여 모니터 된 이벤트를 사전 정의 된 세트로 좁힐 수 있습니다. 예를 들면 다음과 같습니다.

monitorEvents(document.body, 'mouse')

사용 가능한 유형 목록은 여기에 있습니다 .

이 기능이 어떻게 작동하는지 보여주는 작은 gif를 만들었습니다.

monitorEvents 기능 사용


2
동의했다. 이는 특정 요소의 이벤트를 모니터하고 추적하는 사실상의 방법 입니다.
dmackerman

1
아 그래. 그것은 나를 정의하지 못한 "정의되지 않은"것이었지만 이제는 유용한 애니메이션 GIF에서 동일한 내용을 볼 수 있습니다. 감사.
MSC

1
u는 메이크업의 GIF로 사용 했는가하는 도구
JerryGoyal

3
@MariuszPawelski 여기에서 어떻게 진행합니까? 이 작업을 수행하고 관심있는 이벤트 인 클릭 이벤트를 찾았습니다.하지만 요소를 클릭하면 어떻게됩니까? 어떤 종류의 코드가 실행됩니까? 어떤 속성을 MouseEvent검색해야합니까?
Utku

3
그러나 핸들러를 찾을 위치 (예 : 클릭 핸들러)
셰이크 압둘 와히드


22

jQuery (최소 버전 1.11.2)의 경우 다음 절차가 효과적이었습니다.

  1. 요소를 마우스 오른쪽 버튼으로 클릭하고 'Chrome 개발자 도구'를 엽니 다.
  2. 입력 $._data(($0), 'events');'콘솔'에서
  3. 첨부 된 오브젝트를 펼치고 handler:값을 두 번 클릭하십시오 .
  4. 첨부 된 기능의 소스 코드가 표시되며 '검색'탭을 사용하여 그 일부를 검색하십시오.

그리고 바퀴 재발 명을 멈추고 바닐라 JS 이벤트를 사용하기 시작할 때입니다 ... :)

방법 찾기 jquery 클릭 핸들러 기능


15

jquery 플러그인 인 경우 스크립트에서 생성 할 수있는 것과 같은 사용자 지정 이벤트는 표시되지 않습니다. 예를 들면 다음과 같습니다.

jQuery(function($){
 var ThingName="Something";

 $("body a").live('click', function(Event){
   var $this = $(Event.target);
       $this.trigger(ThingName + ":custom-event-one");
 });

 $.on(ThingName + ":custom-event-one", function(Event){
   console.log(ThingName, "Fired Custom Event: 1", Event);
 })

});

Chrome 개발자 도구의 스크립트 아래에있는 이벤트 패널에 "Something : custom-event-one"이 표시되지 않습니다


21
그러면 어떻게 그러한 사건을 찾습니까?
Calydon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.