JSFiddle - React, Tailwind, and code Playground
by szivak009
JavaScript
/*
* Specification
*
* eventManager object handles and processes the events and subscriptions.
* The event object contains the events. Each event has several
* methods subscribed to it.
*
* To subscribe an event, use event.subscribe
* To unsubscribe an event, use event.unsubscribe.
* To trigger an event, use event.trigger.
*
* Interfaces:
* Object interface
* - bind: calls event.subscribe on the given object.
* - unbind: calls event.unsubscribe on the given object.
* - events object: contains id's and event names related to the subscribed events.
* These can be added to an object with the event component.
*/
$(document).ready(function(){
var eventManager = (function(){
var id = 0;
var events = {
'customEvent' : []
// 0 : {
// fn : function(){},
// id : 'someid',
// obj : {}
// },
//
// 1 : {
// fn : function(){},
// id : 'someid',
// obj : {}
// }
//]
};
return {
events : function() {
return events;
},
trigger : function(name, args) {
if(!events[name]) return false;
for(var i=0;i<events[name].length;i++) {
var e = events[name][i];
e.fn.call(e.obj || this, args);
}
return true;
},
subscribe : function(name, fn, obj) {
if(!events[name]) {
events[name] = [];
}
var eid=(++id).toString();
events[name].push({
id : eid,
fn: fn,
obj: obj || null
...