To check for events on an element:
var events = $._data(element, "events")
Note that this will only work with direct event handlers, if you are using $(document).on("event-name", "jq-selector", function() { //logic }), you will want to see the getEvents function at the bottom of this answer
For example:
var events = $._data(document.getElementById("myElemId"), "events")
or
var events = $._data($("#myElemId")[0], "events")
Full Example:
<html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script> <script> $(function() { $("#textDiv").click(function() { //Event Handling }); var events = $._data(document.getElementById('textDiv'), "events"); var hasEvents = (events != null); }); </script> </head> <body> <div id="textDiv">Text</div> </body> </html>
A more complete way to check, that includes dynamic listeners, installed with $(document).on
function getEvents(element) { var elemEvents = $._data(element, "events"); var allDocEvnts = $._data(document, "events"); for(var evntType in allDocEvnts) { if(allDocEvnts.hasOwnProperty(evntType)) { var evts = allDocEvnts[evntType]; for(var i = 0; i < evts.length; i++) { if($(element).is(evts[i].selector)) { if(elemEvents == null) { elemEvents = {}; } if(!elemEvents.hasOwnProperty(evntType)) { elemEvents[evntType] = []; } elemEvents[evntType].push(evts[i]); } } } } return elemEvents; }
Example usage:
getEvents($('#myElemId')[0])