How to check if any JavaScript event listeners/handlers attached to an element/document? [duplicate]

Tried to search online, but does not look like I can formulate search query properly.

So as simple as it sounds, how can I, either with jquery or just javascript list all the handlers or event listeners that are attached to element(s)/document/window or present in dom.

Just wondering.

Thank you in advance.

Answers:

Answer

In jQuery before 1.8, try using $("#element").data("events")

EDIT:

There is also jQuery extension: listHandlers

Answer

When debugging, if you want to just see if there's an event, I recommend using Visual Event or the Elements" section of Chrome's Developer Tools: select an element and look for "Event Listeners on the bottom right.

In your code, if you are using jQuery before version 1.8, you can use:

$(selector).data("events")

to get the events. As of version 1.8, this is discontinued (see this bug ticket). You can use:

$._data(element, "events")

but this is not recommended since it is an internal jQuery structure, and could change in future releases.

This question has some answers which may be useful, but none of them are particularly elegant in the same way that $(selector).data("events") was.

Answer

I just discovered visual event 2:

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

go under the "make it go section" and drag the text link to your bookmark toolbar go to a page that has events and click on the bookmark

tested in FF Mac

Answer

Without jQuery:

if the listeners were added using elem.addEventListener() method, it is not easy to list these listeners. You can override the EventTarget.addEventListener() method by wrapping it with your own. Then you will have the information, what listeners were registered.

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);
}

Working example you can find at http://jsfiddle.net/tomas1000r/RDW7F/

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.