2014-11-18 4 views
5

Ho questo strano caso con i toolstrip di Bootstrap (solo) sul più recente Safari 8.0. Ho un modulo e devo mostrare un suggerimento su ciascuno degli input (per favore, non chiedere perché).I tooltip di Bootstrap non si nasconderanno nel più recente Safari 8.0

Ecco un esempio jsfiddle

`http://jsfiddle.net/d61yuy8q/11/` 

Ed ecco come appare in Safari 8,0

enter image description here

prima cosa ho pensato che il nostro CSS può causare alcuni problemi, così ho messo a nudo fino a classi di bootstrap pure. Poi ho pensato che forse avrei dovuto spostare questi suggerimenti dagli input ai div che stavano avvolgendo gli input ma anche questo non ha aiutato.

Alla fine ho rimosso tutti i wrapper e lasciato solo gli input ma anche questo non ha aiutato.

La mia ipotesi selvaggia è che il nuovo Safari non riconosce l'azione di muore se 2 stessi elementi non hanno spazio tra loro.

Qualcuno può pensare a una soluzione alternativa per questo?

+0

Posta questo come un bug del browser qui: https://github.com/twbs/bootstrap/issues/Da quello che riesco a vedere l'unico modo è di mettere lo spazio verticale tra gli input, è una cosa molto strana. Come soluzione, puoi provare a usare sinistra o destra sul tooltip – Christina

+0

Hey Christiana, Lo farò sicuramente! Volevo solo trovare una buona soluzione qui. Grazie! –

risposta

1

io personalmente non vi piacciono boostrap tooltip, ho creato script personalizzato per sostituire tootlip con popover, ecco come usarlo

<a href="#" title="This is link">Hello</a> 

    $(function() { 
     $('[title]').attr("data-rel", "tooltip"); 
     $("[data-rel='tooltip']") 
      .attr("data-placement", "top") 
      .attr("data-content", function() { 
       return $(this).attr("title") 
      }) 
      .removeAttr('title'); 


     var showPopover = function() { 
      $(this).popover('show'); 
     }; 
     var hidePopover = function() { 
      $(this).popover('hide'); 
     }; 
     $("[data-rel='tooltip']").popover({ 
      trigger: 'manual' 
     }).click(showPopover).hover(showPopover, hidePopover); 

    }); 
+0

Grazie per la risposta, ma il risultato è lo stesso in Safari 8.0 - i popover non si nascondono su mouseleave. –

+0

Hai provato a usare in questo modo

+0

Ehi, sì, l'ho provato e ancora i popover si comportano come le descrizioni dei comandi: rimangono visibili. –

2

È possibile risolvere il problema con l'aggiunta di un grilletto manuale (come @ play2web utilizza per popovers) e la rimozione di eventuali descrizioni dei comandi prima di mostrare uno nuovo come segue:

var showTooltip = function() { 
    $('.tooltip').remove(); // This line removes any currently showing tootltips 
    $(this).tooltip('show'); 
}; 
var hideTooltip = function() { 
    $(this).tooltip('hide'); 
}; 
$("[data-rel='tooltip']").tooltip({ 
    trigger: 'manual' 
}).focus(showTooltip).hover(showTooltip, hideTooltip); 

lo svantaggio è che non si può più usare la funzionalità delay.

Problemi correlati