Skip to content

Commit d3eb7f5

Browse files
committed
fix: Fix tooltip when hovering a children element (delegateTarget)
1 parent 5a12f06 commit d3eb7f5

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

js/src/dom/event-handler.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* --------------------------------------------------------------------------
33
* Bootstrap (v5.0.0-alpha1): dom/event-handler.js
4-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
55
* --------------------------------------------------------------------------
66
*/
77

@@ -94,6 +94,8 @@ function getEvent(element) {
9494

9595
function bootstrapHandler(element, fn) {
9696
return function handler(event) {
97+
event.delegateTarget = element
98+
9799
if (handler.oneOff) {
98100
EventHandler.off(element, event.type, fn)
99101
}
@@ -109,6 +111,8 @@ function bootstrapDelegationHandler(element, selector, fn) {
109111
for (let { target } = event; target && target !== this; target = target.parentNode) {
110112
for (let i = domElements.length; i--;) {
111113
if (domElements[i] === target) {
114+
event.delegateTarget = target
115+
112116
if (handler.oneOff) {
113117
EventHandler.off(element, event.type, fn)
114118
}
@@ -207,14 +211,13 @@ function removeHandler(element, events, typeEvent, handler, delegationSelector)
207211
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
208212
const storeElementEvent = events[typeEvent] || {}
209213

210-
Object.keys(storeElementEvent)
211-
.forEach(handlerKey => {
212-
if (handlerKey.indexOf(namespace) > -1) {
213-
const event = storeElementEvent[handlerKey]
214+
Object.keys(storeElementEvent).forEach(handlerKey => {
215+
if (handlerKey.indexOf(namespace) > -1) {
216+
const event = storeElementEvent[handlerKey]
214217

215-
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
216-
}
217-
})
218+
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
219+
}
220+
})
218221
}
219222

220223
const EventHandler = {
@@ -247,23 +250,21 @@ const EventHandler = {
247250
}
248251

249252
if (isNamespace) {
250-
Object.keys(events)
251-
.forEach(elementEvent => {
252-
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))
253-
})
253+
Object.keys(events).forEach(elementEvent => {
254+
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))
255+
})
254256
}
255257

256258
const storeElementEvent = events[typeEvent] || {}
257-
Object.keys(storeElementEvent)
258-
.forEach(keyHandlers => {
259-
const handlerKey = keyHandlers.replace(stripUidRegex, '')
259+
Object.keys(storeElementEvent).forEach(keyHandlers => {
260+
const handlerKey = keyHandlers.replace(stripUidRegex, '')
260261

261-
if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
262-
const event = storeElementEvent[keyHandlers]
262+
if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
263+
const event = storeElementEvent[keyHandlers]
263264

264-
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
265-
}
266-
})
265+
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
266+
}
267+
})
267268
},
268269

269270
trigger(element, event, args) {
@@ -300,16 +301,15 @@ const EventHandler = {
300301
})
301302
}
302303

303-
// merge custom informations in our event
304+
// merge custom information in our event
304305
if (typeof args !== 'undefined') {
305-
Object.keys(args)
306-
.forEach(key => {
307-
Object.defineProperty(evt, key, {
308-
get() {
309-
return args[key]
310-
}
311-
})
306+
Object.keys(args).forEach(key => {
307+
Object.defineProperty(evt, key, {
308+
get() {
309+
return args[key]
310+
}
312311
})
312+
})
313313
}
314314

315315
if (defaultPrevented) {

0 commit comments

Comments
 (0)