JSFiddle - React, Tailwind, and code Playground
by ariehg
JavaScript
!function(){
var fireEvent = (function(){
if ('dispatchEvent' in document){
return function(type){
var ev = document.createEvent('UIEvents')
.initUIEvent(type,false,true,window,1);
this.element.dispatchEvent(ev);
return this;
};
}else{
return function(type){
var i, fn, stack = this.$events[type];
if (!stack) return;
for (i=0; fn = stack[i++]; i) fn();
return this;
}
}
})();
var addEvent = (function(){
if ('addEventListener' in document){
return function(type,fn){
this.element.addEventListener(type,fn,false);
return this;
};
}else{
return function(type,fn){
if (!this.$events[type]) this.$events[type] = [fn];
else this.$events[type].push(fn);
return this;
}
}
})();
var IEvents = this.IEvents = function(){
this.addEvent = addEvent;
this.fireEvent = fireEvent;
this.$events = {};
};
}.apply(this);
var obj = {
element : document.createElement('div')
}
IEvents.apply(obj);
obj.addEvent('bla',function(){
console.log('bla');
});
document.body.appendChild(obj.element);
obj.fireEvent('bla');