mirror of
https://github.com/twbs/bootstrap.git
synced 2025-09-28 22:39:11 +02:00
Fix tooltip when hovering a children element (delegateTarget) (#30928)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
@@ -94,6 +94,7 @@ function getEvent(element) {
|
||||
|
||||
function bootstrapHandler(element, fn) {
|
||||
return function handler(event) {
|
||||
event.delegateTarget = element
|
||||
if (handler.oneOff) {
|
||||
EventHandler.off(element, event.type, fn)
|
||||
}
|
||||
@@ -109,6 +110,7 @@ function bootstrapDelegationHandler(element, selector, fn) {
|
||||
for (let { target } = event; target && target !== this; target = target.parentNode) {
|
||||
for (let i = domElements.length; i--;) {
|
||||
if (domElements[i] === target) {
|
||||
event.delegateTarget = target
|
||||
if (handler.oneOff) {
|
||||
EventHandler.off(element, event.type, fn)
|
||||
}
|
||||
|
@@ -194,14 +194,14 @@ class Tooltip {
|
||||
|
||||
if (event) {
|
||||
const dataKey = this.constructor.DATA_KEY
|
||||
let context = Data.getData(event.target, dataKey)
|
||||
let context = Data.getData(event.delegateTarget, dataKey)
|
||||
|
||||
if (!context) {
|
||||
context = new this.constructor(
|
||||
event.target,
|
||||
event.delegateTarget,
|
||||
this._getDelegateConfig()
|
||||
)
|
||||
Data.setData(event.target, dataKey, context)
|
||||
Data.setData(event.delegateTarget, dataKey, context)
|
||||
}
|
||||
|
||||
context._activeTrigger.click = !context._activeTrigger.click
|
||||
@@ -587,14 +587,14 @@ class Tooltip {
|
||||
|
||||
_enter(event, context) {
|
||||
const dataKey = this.constructor.DATA_KEY
|
||||
context = context || Data.getData(event.target, dataKey)
|
||||
context = context || Data.getData(event.delegateTarget, dataKey)
|
||||
|
||||
if (!context) {
|
||||
context = new this.constructor(
|
||||
event.target,
|
||||
event.delegateTarget,
|
||||
this._getDelegateConfig()
|
||||
)
|
||||
Data.setData(event.target, dataKey, context)
|
||||
Data.setData(event.delegateTarget, dataKey, context)
|
||||
}
|
||||
|
||||
if (event) {
|
||||
@@ -627,14 +627,14 @@ class Tooltip {
|
||||
|
||||
_leave(event, context) {
|
||||
const dataKey = this.constructor.DATA_KEY
|
||||
context = context || Data.getData(event.target, dataKey)
|
||||
context = context || Data.getData(event.delegateTarget, dataKey)
|
||||
|
||||
if (!context) {
|
||||
context = new this.constructor(
|
||||
event.target,
|
||||
event.delegateTarget,
|
||||
this._getDelegateConfig()
|
||||
)
|
||||
Data.setData(event.target, dataKey, context)
|
||||
Data.setData(event.delegateTarget, dataKey, context)
|
||||
}
|
||||
|
||||
if (event) {
|
||||
|
Reference in New Issue
Block a user