mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-03 14:59:18 +02:00
38 lines
No EOL
1.1 KiB
JavaScript
38 lines
No EOL
1.1 KiB
JavaScript
FP.events = {}
|
|
|
|
// -- From Monocle Events
|
|
|
|
// Fire a custom event on a given target element. The attached data object will
|
|
// be available to all listeners at evt.m.
|
|
//
|
|
// Internet Explorer does not permit custom events; we'll wait for a
|
|
// version of IE that supports the W3C model.
|
|
//
|
|
FP.core.dispatch = function (elem, evtType, data, cancelable) {
|
|
if (!document.createEvent) {
|
|
return true;
|
|
}
|
|
var evt = document.createEvent("Events");
|
|
evt.initEvent(evtType, false, cancelable || false);
|
|
evt.m = data;
|
|
try {
|
|
return elem.dispatchEvent(evt);
|
|
} catch(e) {
|
|
console.warn("Failed to dispatch event: "+evtType);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
// Register a function to be invoked when an event fires.
|
|
FP.events.listen = function (elem, evtType, fn, useCapture) {
|
|
if (typeof elem == "string") { elem = document.getElementById(elem); }
|
|
return elem.addEventListener(evtType, fn, useCapture || false);
|
|
}
|
|
|
|
|
|
// De-register a function from an event.
|
|
FP.events.deafen = function (elem, evtType, fn, useCapture) {
|
|
if (typeof elem == "string") { elem = document.getElementById(elem); }
|
|
return elem.removeEventListener(evtType, fn, useCapture || false);
|
|
} |