Поскольку кажется, что «встроенного» параметра нет, я чувствовал себя лучше при создании индивидуального решения:
$( '[data-toggle="tooltip"] [data-toggle="tooltip"]' ).hover(
e => { // mouseIn
var t = $( e.target ).parents( '[data-toggle="tooltip"]' ).siblings('.tooltip');
if( t.is( ':visible' ) )
t.hide( );
},
e => { // mouseOut
var t = $( e.target ).parents( '[data-toggle="tooltip"]' ).siblings('.tooltip');
if( t.is( ':hidden' ) )
t.show( );
}
);
Я постараюсь построчно объяснить и объяснитьрешение:
$( '[data-toggle="tooltip"] [data-toggle="tooltip"]...
1.Этот селектор гарантирует, что мы нацелены только на вложенные всплывающие подсказки.
e => { // mouseIn
2.Нам нужны разные функции для событий входа и выхода мыши.Возможно, есть более эффективный способ сделать это, но я думаю, что это способствует удобочитаемости.
var t = $( e.target ).parents...
3.Первоначально я только что выполнил показ / скрытие для этого родительского элемента, но у него был побочный эффект: перемещение от внутреннего элемента с чрезмерным наклоном назад к внешнему заставляло всплывающую подсказку только один раз мигать, а затем снова скрывалось до следующего наведения,Я создал t
var, поскольку он будет использоваться более одного раза.
if( t.is( ':visible' ) )
4.Регистрация событий mouseIn / Out показала, что они вызывались 3 раза за одно событие.Я не уверен, почему это произошло, но добавив проверку, чтобы убедиться, что она была скрыта / видима, - прежде чем полностью изменить ее - исправил проблему.
Примечание: ответ Зима работает в песочнице, но яне хотел связываться с инициализацией всплывающей подсказки и рисковал ломать подсказки в других местах.Мое приложение очень большое.