shu-c-view
Version:
rollup 打包vue@2.7组件库框架
48 lines (46 loc) • 1.13 kB
JavaScript
/**
* dom 工具函数
* import 导入时按 '模块导入'
*/
// 注册dom事件
const on = (function() {
if (document.addEventListener) {
return function(element, event, handler) {
if (element && event && handler) {
element.addEventListener(event, handler, false);
}
};
}
return function(element, event, handler) {
if (element && event && handler) {
element.attachEvent(`on${event}`, handler);
}
};
})();
// 解除dom事件
const off = (function() {
if (document.removeEventListener) {
return function(element, event, handler) {
if (element && event) {
element.removeEventListener(event, handler, false);
}
};
}
return function(element, event, handler) {
if (element && event) {
element.detachEvent(`on${event}`, handler);
}
};
})();
// 绑定后触发一次,自动解除绑定
const once = function(el, event, fn) {
// eslint-disable-next-line no-var
var listener = function() {
if (fn) {
fn.apply(this, arguments);
}
off(el, event, listener);
};
on(el, event, listener);
};
export { on, off, once };