silki
Version:
Cli tool for build react app, based on generator-react-multipage, create-react-app, roadhog. Support react multiple pages app develop.
42 lines (37 loc) • 923 B
JavaScript
// 浏览器事件封装,支持一次监听多个事件
export function on(el, eventName, cb, opts) {
opts = opts || false;
const eventNameArr = eventName.split(/\s+/);
if (el.addEventListener) {
eventNameArr.map(name => {
if (name) {
el.addEventListener(name, cb, opts);
}
});
} else if (el.attachEvent) {
eventNameArr.map(name => {
if (name) {
el.attachEvent(`on${name}`, e => {
cb.call(el, e || window.event);
});
}
});
}
}
export function off(el, eventName, cb, opts) {
opts = opts || false;
const eventNameArr = eventName.split(/\s+/);
if (el.removeEventListener) {
eventNameArr.map(name => {
if (name) {
el.removeEventListener(name, cb, opts);
}
});
} else if (el.detachEvent) {
eventNameArr.map(name => {
if (name) {
el.detachEvent(`on${name}`, cb);
}
});
}
}