From: Johann-S Date: Fri, 1 Sep 2017 09:17:49 +0000 (+0200) Subject: Fix delegation events X-Git-Tag: v5.0.0-alpha1~1328 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47242cd0fea278001dda666f9aafd5d8bcb3513a;p=thirdparty%2Fbootstrap.git Fix delegation events --- diff --git a/js/src/dom/eventHandler.js b/js/src/dom/eventHandler.js index 1348dc96e1..f720f14413 100644 --- a/js/src/dom/eventHandler.js +++ b/js/src/dom/eventHandler.js @@ -115,7 +115,8 @@ const EventHandler = { return } - const delegation = typeof handler === 'string' + const delegation = typeof handler === 'string' + const originalHandler = delegation ? delegationFn : handler // allow to get the native events from namespaced events ('click.bs.button' --> 'click') let typeEvent = originalTypeEvent.replace(stripNameRegex, '') const isNative = nativeEvents.indexOf(typeEvent) > -1 @@ -124,14 +125,14 @@ const EventHandler = { } const events = getEvent(element) const handlers = events[typeEvent] || (events[typeEvent] = {}) - const uid = getUidEvent(handler, originalTypeEvent.replace(namespaceRegex, '')) + const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')) if (handlers[uid]) { return } const fn = !delegation ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(handler, delegationFn) handlers[uid] = fn - handler.uidEvent = uid + originalHandler.uidEvent = uid element.addEventListener(typeEvent, fn, false) },