web-utils-curd
Version:
前端工具包
27 lines (26 loc) • 935 B
text/typescript
interface Listener {
(e: Event): Event
}
class EventTool {
addEventListener(el: HTMLElement, type: string, fn: Listener, selector: string) {
// 判断 el 的类型
if (typeof el === "string") {
el = document.querySelector(el)!;
}
// 事件绑定, 若没有传递子元素的选择器,则给 el 绑定事件
if (!selector) {
el.addEventListener(type, fn);
} else {
el.addEventListener(type, (e) => {
// 获取点击的目标事件源
const target: HTMLElement = e.target as HTMLElement;
// 判断当前点击的元素与选择器是否相符合
if (target.matches(selector)) {
// 如符合,则调用回调
fn.call(target, e);
}
});
}
}
}
export default new EventTool();