J'ai pu obtenir des astuces pour travailler enfin avec le code suivant:
<a href="#" rel="tooltip" title="Tool tip text here">Hover over me</a>
puis
<script>
$('[rel=tooltip]').tooltip();
</script>
Le problème que je rencontre est qu'il utilise des info-bulles jQueryUI (pas de flèches, de grosses info-bulles laides) au lieu de Bootstraps.
Que dois-je faire pour utiliser les info-bulles Bootstrap au lieu de jQueryUI?
jquery-ui
twitter-bootstrap
markdotnet
la source
la source
Réponses:
L'interface utilisateur jQuery et Bootstrap utilisent tous deux
tooltip
le nom du plugin. Utilisez$.widget.bridge
pour créer un nom différent pour la version de l'interface utilisateur jQuery et permettre au plugin Bootstrap de rester nommé info-bulle (essayer d'utiliser l'noConflict
option sur le widget Bootstrap entraîne simplement de nombreuses erreurs car cela ne fonctionne pas correctement; ce problème a été signalé ici ):Donc, le code pour le faire fonctionner:
Beau code copier-coller qui gère également le conflit de bouton:
la source
'undefined' is not an object (evaluating '$.widget.bridge')
bridge
chose, puis que vous importiez bootstrap.Une solution simple consiste à charger bootrap.js après jquery-ui.js, afin que la méthode bootstrap .tooltip soit prioritaire.
la source
Cela a fonctionné pour moi:
Si vous avez besoin d'utiliser JQuery-UI mais que vous souhaitez utiliser l'info-bulle de bootstrap, il vous suffit d'obtenir une version personnalisée de JQuery-UI à partir de ce site Web .
Décochez simplement l'option "Info-bulle" et téléchargez-la (ce sera quelque chose comme "jquery-ui-1.10.4.custom.js").
Ajoutez-le simplement à votre projet au lieu de la version que vous utilisez actuellement et vous êtes prêt à faire la fête. Cela évitera le conflit. Cela a fonctionné comme un charme pour moi!
la source
Dans le cas où vous devez charger
jquery-ui.js
après,bootstrap.js
voici comment le faire:Cela remplacera l'info-bulle de jquery-ui et utilisera toujours des bootstraps.
la source
En supposant que l'interface utilisateur sera appelée après l'initialisation de bootsrap
Stockez la fonction d'amorçage juste avant l'initialisation de l'interface utilisateur
Puis appelez-le comme suit
la source
$.fn.bstooltip = $.fn.tooltip.noConflict();
Cette solution semble bien fonctionner pour moi.
la source
Que diriez-vous d'utiliser simplement les popovers Bootstrap à la place? Les popovers BS ne créent pas le même conflit bien qu'ils nécessitent le même composant tooltip.js. Oui, ils sont plus stylisés mais ne rendent pas mes boutons JQuery UI dérangés.
J'utilise Jquery UI uniquement pour la saisie semi-automatique / comboboxes personnalisées (je ne peux donc pas prétendre que les autres contrôles JQ-UI sont corrects) et aucun des éléments ci-dessus n'a permis de résoudre le problème CSS sur les boutons de la zone de liste déroulante devenant «non stylisés» lors de l'appel des info-bulles BS. Le passage à BS Popovers a fourni essentiellement le même effet sans conflit, sans réorganisation de mes importations de script et sans instruction de pont explicite nécessaire.
la source
essayez d'utiliser jQuery.noConflict () et voyez si cela vous aide du tout. Il semble que bootstrap et jQuery utilisent le même espace de noms, et peut-être que les info-bulles bootstrap et jQuery sont chargées dans la même fonction, ou l'une est chargée en premier.
Vous pouvez également vérifier quelle bibliothèque est chargée en premier. Habituellement, si vous déclarez la même fonction deux fois en javascript, la seconde est celle qui est utilisée.
Troisièmement, vérifiez le package jQueryUI ( sur leur site Web) et voyez si vous pouvez télécharger une version qui ne contient pas les infobulles (j'ai vérifié et c'est tout à fait faisable).
la source
Il existe une solution simple et bonne, il suffit de réorganiser votre lien de fichier bootstrap et jquery ui comme ceci:
Chargez simplement jQueryui avant de charger le fichier js boostrap. C'est du travail pour moi.
la source
Un moyen simple consiste à charger bootstrap.js après jquery-ui.js, de sorte que le bootstrap .tooltip remplace l'interface utilisateur de jquery. Si vous utilisez un chargeur de module comme requirejs, vous pouvez rendre bootstrap dépendant de jquery-ui, en tant que tel:
la source