285 votes

Les infobulles de Bootstrap ne fonctionnent pas

Je deviens fou ici.

J'ai le HTML suivant :

<a href="#" rel="tooltip" title="A nice tooltip">test</a>

Et l'infobulle de style Bootstrap refuse de s'afficher, juste une infobulle normale.

Le fichier bootstrap.css fonctionne très bien, et je peux voir les classes qui s'y trouvent.

J'ai placé tous les fichiers JS pertinents à la fin de mon fichier HTML :

<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap-alert.js"></script>
<script src="bootstrap/js/bootstrap-modal.js"></script>
<script src="bootstrap/js/bootstrap-transition.js"></script>
<script src="bootstrap/js/bootstrap-tooltip.js"></script>

J'ai regardé la source de l'exemple de Bootstrap et je ne vois rien qui déclenche l'infobulle nulle part. Je suppose donc que cela devrait fonctionner, ou bien j'ai raté quelque chose d'essentiel ?

J'ai des modales, des alertes et d'autres choses qui fonctionnent très bien, donc je ne suis pas un crétin fini ;)

Merci pour toute aide !

2 votes

L'infobulle est lancée dans le fichier application.js dans l'exemple de Twitters. Pouvez-vous poster votre html ? J'aimerais jeter un coup d'oeil à la façon dont vous initialisez le script.

2 votes

Ahhhhh.... Je l'ai ignoré étant donné le premier commentaire. Cela devrait donc fonctionner : code <a href="#" rel="tooltip" title="Un joli tooltip" class="tooltip-test">test</a><br> <script> // démonstration du tooltip $('.tooltip-test').tooltip() </script>.

1 votes

N'oubliez pas de passer un sélecteur aux options de l'infobulle, $('.tooltip-test').tooltip({ selector: "a" })

293voto

Manuel Points 4099

En résumé, activez vos infobulles à l'aide de sélecteurs jQuery.

<script type="text/javascript">
    $(function () {
        $("[rel='tooltip']").tooltip();
    });
</script>

En fait, vous n'avez pas besoin d'utiliser le sélecteur d'attributs, vous pouvez l'invoquer sur n'importe quel élément même s'il ne possède pas de rel="tooltip" dans son étiquette.

14 votes

Pour ceux qui travaillent avec Rails, ceci est déjà défini dans le fichier bootstrap.js.coffee avec $(".tooltip").tooltip() . Assurez-vous d'inclure //= require bootstrap dans votre application.js .

6 votes

L'ajout de la classe .tooltip à n'importe quel élément casse les infobulles dans mon cas. Le contenu de l'élément avec la classe .tooltip sera masqué et l'info-bulle s'affichera si je parviens à trouver l'élément masqué avec ma souris. L'utilisation de tout autre sélecteur ou nom de classe fonctionne bien.

4 votes

@Leito c'est correct, bootstrap définit les styles pour les éléments suivants .tooltip et par défaut, ils sont invisibles. Vous pouvez utiliser la fonction rel ou toute autre classe comme sélecteur, cependant.

263voto

ImaJedi4ever Points 136

Après avoir rencontré le même problème, j'ai découvert que cette solution fonctionnait sans avoir à ajouter des attributs de balise supplémentaires en dehors des attributs requis par Bootstrap.

HTML

<a href="#" data-toggle="tooltip" title="Title Here">Hyperlink Text</a>

JQuery

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

J'espère que cela vous aidera !

21 votes

Merci ! Cela a fonctionné pour moi. D'une manière ou d'une autre, les autres solutions de cette page ne fonctionnaient pas pour moi.

1 votes

Je suis avec Roman. Cette solution fonctionne également avec les variantes css de bootswatch.

0 votes

Ça a marché pour moi. Rien d'autre ne l'a fait démarrer jusqu'à ce que j'essaie ceci. Merci !

33voto

Harish Kumar Points 307

Vous n'avez pas besoin de tous les fichiers js séparément.

Utilisez simplement les fichiers suivants si vous voulez utiliser toutes les fonctions du bootstrap :

-bootstrap.css
-bootstrap.js

Les deux peuvent être trouvés dans http://twitter.github.com
et enfin
-Dernière version de jquery.js


Pour les Glyphicons vous avez besoin de l'image

glyphicons-halfings.png et/ou glyphicons-halfings-white.png(images de couleur blanche)
que vous devez télécharger dans le dossier /img/ de votre site web (ou) stocker où vous voulez mais changer le répertoire du dossier dans le bootstrap.css.


Pour l'info-bulle vous avez besoin du script suivant à l'intérieur de votre <head> </head> étiquette

  <script type='text/javascript'>
     $(document).ready(function () {
     if ($("[rel=tooltip]").length) {
     $("[rel=tooltip]").tooltip();
     }
   });
  </script>

C'est ça...

24voto

Igor Shvydok Points 91

HTML

<a href="#" data-toggle="tooltip" title="Title Here">Hyperlink Text</a>

JQuery

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

Celui-ci est le travail pour moi.

2 votes

Cette proposition a parfaitement fonctionné pour moi aussi. Je l'ai aimée parce qu'elle est simple et élégante. Elle vous permet de continuer à utiliser Bootstrap comme si le plugin était initialisé par défaut, comme c'est le cas pour les éléments Dropdown et Tab. J'ai ajouté le JS proposé par @Igor dans un nouveau fichier et l'a regroupé à l'original bootstrap.js

20voto

Amir Soleymani Points 195

Je sais que c'est une vieille question, mais comme j'ai eu ce problème avec la nouvelle version de bootstrap et que ce n'est pas clair sur le site web, voici comment activer l'infobulle.

donnez à votre élément une classe comme "tooltip-test".

puis activez cette classe dans votre balise javascript :

<script type="text/javascript">
    $('.tooltip-test').tooltip();
</script>

<a href="#" class="tooltip-test" title="" data-original-title="Tooltip">This link</a>

0 votes

C'est la seule solution qui a fonctionné pour moi. J'utilise data-original-title="{{someAngularJSVar}}" pour mettre à jour le titre et cela fonctionne parfaitement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X