improved eventHandler.ts

This commit is contained in:
huangjx
2022-04-24 15:28:34 +08:00
parent 0a9bcb606d
commit 71a015e10e

View File

@@ -14,23 +14,26 @@ const eventHandler = {
}); });
return; return;
} }
let el = document.querySelector(target); let items = document.querySelectorAll(target);
if (!el) { if (!items) {
return; return;
} }
el.addEventListener(eventType, function (e) { items.forEach(el => {
let element = e.target as HTMLElement; el.addEventListener(eventType, function (e) {
if (element === this && selector === target) { let element = e.target as HTMLElement;
callback.call(element, e); if (element === this && selector === target) {
return;
}
for (; element && element != this; element = element.parentElement) {
if (typeof selector === "string" && element.matches(selector)) {
callback.call(element, e); callback.call(element, e);
break; 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) { remove: function (element: target, eventType: string, callback: callback) {