31

Khi kiểm tra DOM của một trang, tôi muốn biết sự kiện đính kèm (s) của một phần tử một cách nhanh chóngTìm kèm theo/sự kiện ràng buộc của một phần tử sử dụng công cụ phát triển Chrome/Firebug/IE Developer Toolbar

Ví dụ, nếu một nút có HTML DOM này

<button id="button1">Click Me</button> 

Và ở đâu đó (không phải ở nơi tôi biết trước) nó có sự kiện đính kèm, ví dụ:

$("#button1").click(function(){...}); 

Tôi biết nó có thể được thực hiện programatically (Can I find events bound on an element with jQuery?)

nhưng là có một cách sử dụng chỉ là một trong những công cụ phát triển dành cho Chrome/Firefox/IE để xem danh sách các sự kiện?


Cập nhật: Tôi phát hiện ra rằng trong các phiên bản Chrome mới hơn Tôi có một tab gọi EventListeners nhưng có vẻ như nó không cho phép dễ dàng khoan xuống tất cả các con đường xuống là nguồn gốc của sự kiện này, như jQuery kết thúc tốt đẹp ban đầu

+0

Bạn có thể xem phần mở rộng Firebug của [EventBug] (http://getfirebug.com/wiki/index.php/Firebug_Extensions#Eventbug) Firebug. Tuy nhiên tôi không biết làm thế nào nó tích hợp với jQuery. Nhưng nói chung, sự hỗ trợ cho người nghe sự kiện là xa tốt trong tất cả các công cụ dev không may. –

Trả lời

2

FireQuery - http://firequery.binaryage.com/ cho phép bạn xem các sự kiện ràng buộc để các yếu tố và khoan vào chúng

+4

Nếu có điều như vậy cho chrome (EventListeners mà đi sâu vào nguồn của sự kiện), cảm thấy tự do để bình luận! –

+0

câu trả lời này cần phải được bỏ chọn, nó không phải cho chrome. –

18

với thanh tra Chrome chọn phần tử trong "Elements" tab và sau đó từ tab "Console" bạn có thể xem thứ các sự kiện e được đính kèm với phần tử có getEventListeners($0);.

+1

getEventListeners chỉ liệt kê các sự kiện được liên kết với chính phần tử đó, không bao gồm tất cả các sự kiện tác nhân của cha mẹ nó. – diyism

+0

+1 để sử dụng $ 0 – ipd

+0

@ipd $ 0 là gì? – Shanimal

23

Hiện tại, có một tab Trình nghe sự kiện trong Chrome. Event Listeners tab

+0

Lưu ý rằng trong tab này, bạn có thể lọc theo "Tất cả các nút" hoặc "Chỉ nút đã chọn". – chipit24

+0

vô dụng, vì mọi thứ đều trỏ đến jquery. Sử dụng 'phiên bản phát triển firefox' bạn thực sự có thể tìm thấy trình xử lý chính xác trong trường hợp của tôi là khung nhìn Backbone. –

29

Để có được xử lý kèm theo đầu tiên trên $ đầu tiên ("# button1") yếu tố

$._data($("#button1").get(0),"events").click[0].handler 

JSFiddle

Câu chuyện dài mà không ai muốn nghe: Tôi đến đây để tìm kiếm một plugin. Tôi đã vui mừng khi thấy câu trả lời của @ schmidlop, nhưng trong jQuery không thực sự cho tôi người nghe tôi đang tìm kiếm, nó chỉ hiển thị trình xử lý chung cho các sự kiện jQuery mà cuối cùng gọi lại gọi lại cụ thể. Tôi vẫn đang tìm kiếm một plugin Chrome cho phép tôi nhấp chuột phải vào một phần tử và để tôi đi sâu vào các trình xử lý được đính kèm với đối tượng.

Nguyên nhân sẽ tuyệt vời.

UPDATE: Tôi tìm thấy một phần mở rộng chrome gọi jQuery Debugger. Bạn chỉ đơn giản là "Inspect Element" và chọn "jQuery Sự kiện" từ "Elements" menu con ...https://chrome.google.com/webstore/detail/jquery-debugger/dbhhnnnpaeobfddmlalhnehgclcmjimienter image description here

+1

Dữ liệu '$ ._ ($ (" # button1 "). Nhận (0)," sự kiện "). [0] .handhand' hoạt động tốt! –

+1

Thật tuyệt vời ... rất lý tưởng vì tôi không cần bất kỳ công cụ nào. Nếu tab trình xử lý sự kiện của Chrome có thể thực hiện điều này, điều đó thật tuyệt vời! –

3

công cụ phát triển của Firefox sẽ hiển thị ngay "ev" bên cạnh các yếu tố đó đã ràng buộc các sự kiện. Điều này có thể được sử dụng để kiểm tra các sự kiện bị ràng buộc (bao gồm các sự kiện jQuery).

Dưới đây là một ví dụ về kiểm tra các yếu tố "Đoạn đầu tiên" từ jQuery click documentation:

Bound events in Firefox developer tools

0

Bạn cũng có thể kiểm tra trực quan addon tổ chức sự kiện dành cho chrome.