75 lines
No EOL
1.6 KiB
JavaScript
75 lines
No EOL
1.6 KiB
JavaScript
var events = new window.pubsub();
|
|
|
|
/************************************\
|
|
*
|
|
* The events var was instantiated
|
|
* as it's own scope
|
|
*
|
|
* **********************************/
|
|
|
|
events.on(
|
|
'hello',
|
|
function(data){
|
|
eventLog.log('hello event recieved ', data);
|
|
}
|
|
);
|
|
|
|
events.on(
|
|
'hello',
|
|
function(data){
|
|
eventLog.log('Second handler listening to hello event got',data);
|
|
events.trigger(
|
|
'world',
|
|
{
|
|
type:'myObject',
|
|
data:{
|
|
x:'YAY, Objects!'
|
|
}
|
|
}
|
|
)
|
|
}
|
|
);
|
|
|
|
events.on(
|
|
'world',
|
|
function(data){
|
|
eventLog.log('World event got',data);
|
|
events.off('*');
|
|
eventLog.log('Removed all events')
|
|
}
|
|
);
|
|
|
|
/**********************************\
|
|
*
|
|
* Demonstrate * event (on all events)
|
|
* remove this for less verbose
|
|
* example
|
|
*
|
|
* ********************************/
|
|
events.on(
|
|
'*',
|
|
function(type){
|
|
eventLog.log('Catch all detected event type of : ',type, '. List of all the sent arguments ',arguments);
|
|
}
|
|
);
|
|
|
|
/*******************************\
|
|
*
|
|
* Prep HTML for logging
|
|
*
|
|
* *****************************/
|
|
var eventLog=document.getElementById('events');
|
|
//not using console.log incase it doesn't work in some browser. *TLDT (Too lazy didn't test)*
|
|
eventLog.log=_log_;
|
|
function _log_ (){
|
|
var events=Array.prototype.slice.call(arguments),
|
|
newEvent=document.createElement('li');
|
|
|
|
newEvent.innerHTML=events.join(' ');
|
|
this.appendChild(newEvent);
|
|
}
|
|
|
|
events.trigger(
|
|
'hello',
|
|
'world'
|
|
); |