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)
   },