2012-11-12 25 views
5

thể trùng lặp:
How to find event listeners on a DOM node?javascript: làm thế nào để có được một danh sách các xử lý sự kiện ràng buộc để một sự kiện

Với một phần tử, chúng ta hãy nói một div, là nó có thể để có được một danh sách các trình xử lý được liên kết với một sự kiện cụ thể được bắn bởi phần tử?

/* pseudo code: click on a div handlers? */ 
document.getElementById('myDiv').getHandlers('click'); 

Sửa

Ok, đây là một số chi tiết. Tôi muốn ràng buộc một trình xử lý nhấp chuột vào một div, trừ khi một trình xử lý khác đã bị ràng buộc vào div. Những gì tôi có trong tâm trí là như sau:

/* pseudo code: click on a div handlers? */ 
if(!document.getElementById('myDiv').getHandlers('click')) 
    document.getElementById('myDiv').addEventListener('click', myEventhandler); 
+0

Đây là lý do tại sao khi tôi liên kết các trình xử lý, tôi cung cấp cho họ các tên duy nhất. Bạn thậm chí có thể lưu tên trong một thuộc tính dữ liệu trên phần tử. –

+0

@Bergi: Tôi đã đọc các bản sao được đề xuất. Nhưng không có trường hợp nào tôi tìm thấy một cách lập trình để có được một danh sách các trình xử lý. Câu trả lời được đề xuất liên quan đến gỡ lỗi hoặc sử dụng jQuery. –

+0

@ADC: Có, bởi vì không có. – Bergi

Trả lời

5

Không, không thể thực hiện bằng phương pháp DOM.

Tuy nhiên, một số thư viện lưu trữ tất cả trình xử lý mà chúng liên kết trong cấu trúc dữ liệu liên quan đến yếu tố để bật các phương thức như unbindAll.

Các vấn đề liên quan