JSFiddle - React, Tailwind, and code Playground

JavaScript

function Event() {}

Event.listen = function(eventName, callback) {
  if (document.addEventListener) {
    document.addEventListener(eventName, callback, false);
  } else {
    document.documentElement.attachEvent('onpropertychange', function(e) {
      if (e.propertyName == eventName) {
        callback();
      }
    });
  }
};

Event.trigger = function(eventName) {
  if (document.createEvent) {
    var event = document.createEvent('Event');
    event.initEvent(eventName, true, true);
    document.dispatchEvent(event);
  } else {
    document.documentElement[eventName] ++;
  }
};



Event.listen('myevent', function() {
  alert("myevent vanilla");
});

$(document).on('myevent', function() {
  alert("myevent jquery");
});

Event.trigger('myevent');