开发者

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

This question already has answers here: jQuery find events handlers registered with an object (16 answers) 开发者_如何学运维 Closed 6 years ago.

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

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?


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

EDIT:

There is also jQuery extension: listHandlers


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.


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/


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜