1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-03 14:59:18 +02:00
epub.js/fpjs/render/events.js
2013-01-10 13:57:27 -08:00

58 lines
No EOL
1 KiB
JavaScript

FP.Events = function(obj, el){
this.events = {};
if(!el){
this.el = document.createElement('div');
}else{
this.el = el;
}
obj.createEvent = this.createEvent;
obj.tell = this.tell;
obj.listen = this.listen;
obj.deafen = this.deafen;
return this;
}
FP.Events.prototype.createEvent = function(evt){
var e = new CustomEvent(evt);
this.events[evt] = e;
return e;
}
FP.Events.prototype.tell = function(evt, msg){
var e;
if(!this.events[evt]){
console.warn("No event:", evt, "defined yet, creating.");
e = this.createEvent(evt)
}else{
e = this.events[evt];
}
if(msg) e.msg = msg;
this.el.dispatchEvent(e);
}
FP.Events.prototype.listen = function(evt, func, bindto){
if(!this.events[evt]){
console.warn("No event:", evt, "defined yet, creating.");
this.createEvent(evt);
return;
}
if(bindto){
this.el.addEventListener(evt, func.bind(bindto), false);
}else{
this.el.addEventListener(evt, func, false);
}
}
FP.Events.prototype.deafen = function(evt, func){
this.el.removeEventListener(evt, func, false);
}