added typescript files converted from js files

This commit is contained in:
huangjx
2022-02-26 11:47:23 +08:00
parent b689900012
commit 677c88e88c
13 changed files with 607 additions and 8 deletions

40
src/lib/eventHandler.ts Normal file
View File

@@ -0,0 +1,40 @@
type callback = (event: any) => void;
type target = string | Element | HTMLElement
const eventHandler = {
add: function (eventType: string, target: target, selector: string | callback | Element, callback?: callback) {
if (typeof selector === 'function' && !callback) {
callback = selector;
selector = target;
}
if (typeof target === 'object') {
target.addEventListener(eventType, function (e) {
callback.call(target, e);
});
return;
}
let el = document.querySelector(target);
if (!el) {
return;
}
el.addEventListener(eventType, function (e) {
let element = e.target as HTMLElement;
if (element === this && selector === target) {
callback.call(element, e);
return;
}
for (; element && element != this; element = element.parentElement) {
if (typeof selector === "string" && element.matches(selector)) {
callback.call(element, e);
break;
}
}
});
},
remove: function (element: target, eventType: string, callback: callback) {
(<Element>element).removeEventListener(eventType, callback);
}
}
export default eventHandler;