2016-03-25 6 views
1

У меня проблема с подсказками, требующими двойной щелчок после того, как они были нажаты один раз. Например, я нажимаю tooltip1, затем нажимаю tooltip2 и снова нажимаю tooltip1. Во второй раз, когда я нажимаю tooltip1, для всплывающей подсказки требуется два щелчка.Всплывающая подсказка Bootstrap, требующая двойного щелчка после первого щелчка

В целом, я ищу страницу с 4 подсказками для инструментов, которые будут отображать всплывающую подсказку, когда я нажимаю ссылку и показываю только одну всплывающую подсказку за один раз, поэтому, если отображается одна всплывающая подсказка, остальные 3 скрыты.

Примером может служить в https://jsfiddle.net/9656mv9w/

$(document).ready(function() { 
$('[data-toggle="tooltip"]').tooltip(); 
}); 

$(document).on('show.bs.tooltip', function() { 
$('.tooltip').not(this).hide(); 
}); 
+0

Если вы прочитали исходный код Bootstrap, вы увидите, что большая часть кода popover использует код всплывающей подсказки. («Popover» получен из «Tooltip» с несколькими незначительными настройками.) Таким образом, проблема и решения одинаковы для обоих. – Louis

ответ

1

Я была такая же проблема. Обходное исправление заключается в обнаружении любых всплывающих подсказок в событии show, которые должны быть закрыты, а затем вызвать щелчок, чтобы закрыть их.

//init bootstrap tooltips 
$('[data-toggle="tooltip"]').tooltip({ 
    trigger:'click' 
}); 

//listen for the show event on any triggered elements 
$('[data-toggle="tooltip"]').on('show.bs.tooltip', function() { 

//get a reference to the current element that is showing the tooltip 
    var triggeredElement = $(this); 

    //loop through all tooltips elements 
    $('[data-toggle="tooltip"]').each(function(){ 

    //if they are not the currently triggered element and have a tooltip, 
    //trigger a click to close them 
    if($(this) !== triggeredElement && $(this).next().hasClass('tooltip')) { 
     $(this).click(); 
    } 
    }) 
}); 
+0

Это сработало отлично. Спасибо! –

Смежные вопросы