dom-events
Version:
dom event binding and triggering
50 lines (40 loc) • 1.1 kB
JavaScript
var synth = require('synthetic-dom-events');
var on = function(element, name, fn, capture) {
return element.addEventListener(name, fn, capture || false);
};
var off = function(element, name, fn, capture) {
return element.removeEventListener(name, fn, capture || false);
};
var once = function (element, name, fn, capture) {
function tmp (ev) {
off(element, name, tmp, capture);
fn(ev);
}
on(element, name, tmp, capture);
};
var emit = function(element, name, opt) {
var ev = synth(name, opt);
element.dispatchEvent(ev);
};
if (!document.addEventListener) {
on = function(element, name, fn) {
return element.attachEvent('on' + name, fn);
};
}
if (!document.removeEventListener) {
off = function(element, name, fn) {
return element.detachEvent('on' + name, fn);
};
}
if (!document.dispatchEvent) {
emit = function(element, name, opt) {
var ev = synth(name, opt);
return element.fireEvent('on' + ev.type, ev);
};
}
module.exports = {
on: on,
off: off,
once: once,
emit: emit
};