mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	| @@ -360,7 +360,11 @@ export function querySingleVisibleElem<T extends HTMLElement>(parent: Element, s | ||||
| export function addDelegatedEventListener<T extends HTMLElement, E extends Event>(parent: Node, type: string, selector: string, listener: (elem: T, e: E) => Promisable<void>, options?: boolean | AddEventListenerOptions) { | ||||
|   parent.addEventListener(type, (e: Event) => { | ||||
|     const elem = (e.target as HTMLElement).closest(selector); | ||||
|     if (!elem || !parent.contains(elem)) return; | ||||
|     // It strictly checks "parent contains the target elem" to avoid side effects of selector running on outside the parent. | ||||
|     // Keep in mind that the elem could have been removed from parent by other event handlers before this event handler is called. | ||||
|     // For example: tippy popup item, the tippy popup could be hidden and removed from DOM before this. | ||||
|     // It is caller's responsibility make sure the elem is still in parent's DOM when this event handler is called. | ||||
|     if (!elem || (parent !== document && !parent.contains(elem))) return; | ||||
|     listener(elem as T, e as E); | ||||
|   }, options); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user