J'ai un problème avec l'info-bulle de bootstrap: lorsque je clique sur un bouton, l'info-bulle reste même si le curseur se trouve en dehors du bouton. J'ai regardé dans le manuel - info-bulle de Bootstrap et si je clique sur les boutons, je vois le même problème. Y at-il une solution pour résoudre ce problème? Juste essayé dans le dernier FF, IE.
Ceci est dû au fait que trigger
n'est pas défini. La valeur par défaut du déclencheur est 'hover focus'
, de sorte que l'info-bulle reste visible après un clic sur un bouton, jusqu'à ce qu'un autre bouton soit cliqué, car le bouton est focused
.
Il suffit donc de définir trigger
comme 'hover'
uniquement. Ci-dessous, le même exemple que celui auquel vous avez accédé sans info-bulles persistante après avoir cliqué sur un bouton:
$('[data-toggle="tooltip"]').tooltip({
trigger : 'hover'
})
l'exemple de doc dans un violon -> http://jsfiddle.net/vdzvvg6o/
Je connais plus d'un an, mais je ne pouvais pas que cela fonctionne avec des exemples ici. J'ai dû utiliser les éléments suivants:
$('[rel="tooltip"]').on('click', function () {
$(this).tooltip('hide')
})
Cela montre également l'info-bulle à nouveau en vol stationnaire.
Dans mon cas, le problème a été reproduit uniquement dans Internet Explorer: quel que soit l'élément (entrée, div, etc.) associé à une info-bulle (si vous cliquez dessus), l'info-bulle reste affichée.
nous avons trouvé sur le Web des solutions qui recommandent à .hide () d'afficher une info-bulle sur les éléments Cliquez sur l'événement - mais c'est une mauvaise idée: revenir au même élément - le garder caché ... dans mon cas
$('.myToolTippedElement').on('click', function () {
$(this).blur()
})
fait toute la magie !!! - où .myToolTippedElement est l'élément qui a une info-bulle deCourse ...
Bonjour, j'ai peu de solution à ce problème. Lorsque les autres solutions ne fonctionnent pas, essayez simplement celle-ci:
$('body').tooltip({
selector: '[data-toggle="tooltip"], [title]:not([data-toggle="popover"])',
trigger: 'hover',
container: 'body'
}).on('click mousedown mouseup', '[data-toggle="tooltip"], [title]:not([data-toggle="popover"])', function () {
$('[data-toggle="tooltip"], [title]:not([data-toggle="popover"])').tooltip('destroy');
});
C'est une solution pour glisser et déposer aussi. J'espère que cela aidera quelqu'un :)
Aussi, vous pouvez ajouter:
onclick="this.blur()"
La réponse de David ci-dessus a aidé à résoudre mon problème. J'ai eu le survol et cliquez sur l'événement sur le bouton. Firefox sur MAC s'est comporté comme je le voulais. C'est-à-dire, afficher les info-bulles en survol, ne pas afficher les info-bulles pour un clic. Sur d’autres navigateurs et systèmes d’exploitation, lorsque je clique sur mon clavier, l’info-bulle apparaît et reste inchangée. Même si je déplace la souris vers d'autres boutons pour le survol. Voici ce que j'ai eu:
$('[data-toggle="tooltip"]').tooltip({placement: 'right', html: true});
C'est le correctif:
$('[data-toggle="tooltip"]').tooltip({placement: 'right', html: true, trigger: 'hover'});
Essayez d'utiliser rel="tooltip"
au lieu de data-toggle="tooltip"
qui a fonctionné dans mon cas. J'utilisais data-toggle="tooltip"
et je définissais également la condition de déclenchement en vol stationnaire, ce qui ne fonctionnait pas dans mon cas. Lorsque j'ai changé mon sélecteur de données, cela a fonctionné.
Code HTML:
<button id="submit-btn" type="submit" class="btn btn-success" rel="tooltip" title="Click to submit this form">Submit</button>
Code JS // Tooltip $ ('. Btn'). Tooltip ({trigger: 'survol'});
Cela supprimera définitivement l'info-bulle coincée.
J'ai résolu ce problème en supprimant l'info-bulle de la fonction d'événement click à l'aide du code suivant:
$("#myButton").on("click", function() {
$("div[role=tooltip]").remove();
});
dans angular 7 avec bootstrap 4 et jQuery j'ai trouvé cela et cela fonctionne bien. J'ai utilisé dispose parce que détruit ne cache pas l'info-bulle.
ngAfterViewChecked() {
$('[data-toggle="tooltip"]').tooltip({
trigger: 'hover'
});
$('[data-toggle="tooltip"]').on('mouseleave', function () {
$(this).tooltip('dispose');
});
$('[data-toggle="tooltip"]').on('click', function () {
$(this).tooltip('dispose');
});
}
Solution de travail
$(document).on("click",function()
{
setTimeout(function()
{
$('[data-toggle="tooltip"]').tooltip('hide');
},500); // Hides tooltip in 500 milliseconds
});
Dans votre fonction de préparation de document, utilisez cette
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip({
trigger : 'hover'
});
});
Cette solution a fonctionné pour moi.
$('a[data-toggle="tooltip"]').tooltip({
animated: 'fade',
placement: 'bottom',
trigger: 'click'
});
$('a[data-toggle="tooltip"]').click(function(event){
event.stopPropagation();
});
$('body').click(function(){
$('a[data-toggle="tooltip"]').tooltip('hide');
});
J'ai essayé la plupart des solutions données dans les réponses précédentes, mais aucune d'entre elles n'a fonctionné pour moi.
Mon problème est dans DataTable. Le code ci-dessous fonctionne pour moi.
columnDefs: [ { targets: 0, data: "id", render: function (data, type, full, meta) { return '<a href="javascript:;" class="btn btn-xs btn-default" data-toggle="tooltip" title="Pending" data-container="body"><i class="fa fa-check"></i></a>'; } } ], drawCallback: function() { $('[data-toggle="tooltip"]').tooltip(); $('[data-toggle="tooltip"]').on('click', function () { $(this).tooltip('hide'); }); }
Vous pouvez également utiliser la méthode ci-dessous pour masquer les info-bulles sur mouseleave, comme ci-dessous:
jQuery("body").on("mouseleave", ".has-tooltip", function(){
jQuery(this).blur();
});
Cela fonctionne pour moi:
$(document).ready(function() {
$('#save').tooltip({
trigger : 'hover'
}) ;
});
Je désactivais le bouton de sauvegarde de manière dynamique, alors le problème était.
J'utilise bootstrap tooltip dans cycle.js et rien de ce qui précède n'a fonctionné pour moi.
Je devais faire ceci:
return button( selector + '.btn.btn-sm',
{
hook: {
destroy: tooltipOff,
insert: toggleTooltipOn,
},
....
function toggleTooltipOn(vnode){
setupJQuery();
jQuery[0].$( vnode.Elm )
.tooltip({container:'body', trigger: 'hover');
//container:body is to help tooltips not wiggle on hover
//trigger:hover is to only trigger on hover, not on click
}
function tooltipOff( vnode ){
setupJQuery();
jQuery[0].$( vnode.Elm ).tooltip('hide');
}
Dans mon cas, c'était le correctif:
beforeDestroyingElement() {
$('[data-toggle="tooltip"]').tooltip('hide');
}
Je n'obéissais pas à cette règle de Bootstrap docs:
Les info-bulles doivent être masquées avant que leurs éléments correspondants aient été supprimés du DOM.