mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-04 15:09:16 +02:00
58 lines
No EOL
1 KiB
JavaScript
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);
|
|
} |