Skip to content

Instantly share code, notes, and snippets.

@chasepeeler
Created April 24, 2018 19:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chasepeeler/db0bf26b906e0147e3294065c4fa5f9d to your computer and use it in GitHub Desktop.
Save chasepeeler/db0bf26b906e0147e3294065c4fa5f9d to your computer and use it in GitHub Desktop.
events
class foo {
constructor(){
this._listeners = {};
}
addEventLister(event,callback){
if(!this._listeners[event]){
this._listeners[event] = [];
}
this._listeners[event].push(callback);
this.eventFramework.addEventListener(event,callback);
}
removeEventListener(event,callback){
if(!this._listeners[event]){
return;
}
if(!callback){
for(let i = 0;i<this._listeners[event].length;i++){
this.eventFramework.removeEventListener(event,this._listeners[event][i]);
}
this._listeners[event] = [];
} else {
let _callbacks = [];
for(let i = 0;i<this._listeners[event].length;i++){
if(this._listeners[event][i] === callback){
this.eventFramework.removeEventListener(event,callback);
} else {
_callbacks.push(this._listeners[event][i]);
}
}
this._listeners[event] = _callbacks;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment