diff --git a/js/src/dom/eventHandler.js b/js/src/dom/eventHandler.js index 1348dc96e17990b777c6526a94b9d386cb1b77e5..f720f14413e58ed6d8015b5ea55a0f93af8e79ed 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) },