JSFiddle - React, Tailwind, and code Playground

HTML

<div id="foo"></div>

JavaScript

Element.implement({
    getEvents: function(eType) {
        var events = $H(this.retrieve("events"));
        
        if (!events)
            return false;
        
        if (eType) {
            if (events[eType] && events[eType].keys) {
                return events[eType].keys.length;
            }
            
            return false;
        }
        return events && events.getLength() ? events.getLength() : false;
    }
});

console.clear();
console.log($("foo").getEvents());

$("foo").addEvents({
    click: function() {
        alert("hi");
    },
    mouseenter: function() {
        this.setStyle("background", "red");
    },
    mouseleave: function() {
        this.setStyle("background", "none");
    }
});

console.log($("foo").getEvents());
console.log($("foo").getEvents("click"));

$("foo").addEvents({
    click: function() {
        alert("hi");
    }
});

console.log($("foo").getEvents("click"));