UNPKG

@writ/utils

Version:
57 lines (52 loc) 1.73 kB
export default { /** * @function addEventListener 添加句柄 * @param {object} element DOM元素引用 * @param {string} type 事件名称 * @param {function} handler 事件处理函数 * @param {boolean} options.capture * @param {boolean} options.passive **/ addEventListener(element, type, handler, { capture = false, passive = false }) { if ('function' === typeof element.addEventListener) { element.addEventListener(type, handler, { passive: passive, capture: capture }); } }, /** * @function removeEventListener 删除句柄 * @param {object} element DOM元素引用 * @param {string} type 事件名称 * @param {function} handler 事件处理函数的名称 * @param {boolean} options.capture * @param {boolean} options.passive * @description 匿名的事件处理函数不能删除 **/ removeEventListener(element, type, handler, { capture = false, passive = false }) { if ('function' === typeof element.removeEventListener) { element.removeEventListener(type, handler, { passive: passive, capture: capture }); } }, /** * @function dispatchEvent 触发事件 * @param {object} element DOM元素 * @param {string} type 触发的事件类型 * @param {callback} callback 触发的之后的 * dispatchEvent 别名 fakedEventModel **/ emitEventListener(element, type, faked) { if ('function' !== document.createEvent) { return {}; } const evt = document.createEvent('HTMLEvents'); evt.initEvent(type, true, true); if (faked) { evt.target = element; evt.srcElement = element; evt.emited = true; return evt; } else { evt.emited = element.dispatchEvent(evt); } return evt; } }