UNPKG

dom-events

Version:

dom event binding and triggering

50 lines (40 loc) 1.1 kB
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 };