Skip to content

Instantly share code, notes, and snippets.

@ImKubass
Created August 15, 2024 04:41
Show Gist options
  • Save ImKubass/bcb881531d77dff17f456db46ae0637c to your computer and use it in GitHub Desktop.
Save ImKubass/bcb881531d77dff17f456db46ae0637c to your computer and use it in GitHub Desktop.
Fuction for global click event listener that returns clicked element and event
/**
* @example
* addGlobalEventListener("click", ".i-usp", (clickedElement) => {
* console.log(clickedElement)
* })
*/
export function addGlobalEventListener(
type: string,
selector: string,
callback: (clickedElement: Element, event: Event) => void,
parent: Document | Element = document,
) {
parent.addEventListener(type, (event) => {
const target = event.target
if (target instanceof Element && target.closest(selector)) {
const clickedElement = target.closest(selector)
if (clickedElement) {
callback(clickedElement, event)
}
}
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment