jQueryUI les info-bulles sont en concurrence avec Twitter Bootstrap
J'ai été en mesure d'obtenir quelques outils et conseils pour travailler enfin avec le code suivant:
<a href="#" rel="tooltip" title="Tool tip text here">Hover over me</a>
et puis
<script>
$('[rel=tooltip]').tooltip();
</script>
Le problème, je suis en cours d'exécution, c'est qu'il est à l'aide de jQueryUI les info-bulles (pas de flèches, gros laid info-bulles) au lieu de s'Amorce.
Que dois-je faire pour utiliser le Bootstrap des info-bulles au lieu de jQueryUI?
- avez-vous besoin d'avoir les deux choses?
- Nan... j'aimerais juste avoir le Bootstrap des info-bulles.
- désolé, je voulais dire avez-vous besoin d'avoir l'interface utilisateur de jquery ET bootstrap?
- Oui... il semble que l'Bootstrap.js trucs repose (au moins en partie) sur le jQueryUI choses. Sans jQuery, Bootstrap choses ne fonctionnent pas.
- Cela a fonctionné pour moi, caisse answer
- incorrect. Bootstrap nécessite le noyau de la bibliothèque de JQuery, pas JQuery.L'INTERFACE utilisateur.
Vous devez vous connecter pour publier un commentaire.
À la fois l'INTERFACE utilisateur de jQuery et Bootstrap utilisation
tooltip
pour le nom du plugin. Utilisation$.widget.bridge
pour créer un nom différent pour la version de jQuery UI et de permettre le démarrage du plugin pour rester nommé info-bulle (en essayant d'utiliser lenoConflict
option sur le Bootstrap widget résultat juste, dans un grand nombre d'erreurs car il ne fonctionne pas correctement; ce problème a été signalé ici):De sorte que le code pour le faire fonctionner:
Beau copier coller du code qui gère également le bouton de conflit:
'undefined' is not an object (evaluating '$.widget.bridge')
bridge
chose, et puis les importer bootstrap.Une solution simple est de charger bootrap.js après jquery-ui.js, de sorte que le bootstrap .bulle d'aide de la méthode l'emporte.
Cela a fonctionné pour moi:
Si vous avez besoin d'utiliser JQuery-UI, mais vous voulez utiliser bootstrap de l'info-bulle, il suffit d'obtenir une version personnalisée de JQuery-UI à partir de ce site web.
Simplement de décocher la case "info-bulle" de l'option, et le télécharger (il sera quelque chose comme "jquery-ui-1.10.4.custom.js").
Il suffit de l'ajouter à votre projet au lieu de la version que vous utilisez actuellement maintenant, et vous êtes prêt à faire la fête. Cela permettra d'éviter le conflit. Il a travaillé comme un charme pour moi!
Dans le cas où vous devez charger
jquery-ui.js
aprèsbootstrap.js
voici comment le faire:HTML:
Cela va remplacer jquery-ui bulle d'aide et de toujours utiliser des amorces.
En supposant que l'INTERFACE utilisateur sera appelé après bootsrap initialisé
Stocker les fichiers d'amorce de la fonction juste à l'avant de l'INTERFACE utilisateur est initialisé
Puis l'appeler comme suit
Cette solution semble bien fonctionner pour moi.
Que diriez-vous simplement à l'aide de Bootstrap popovers à la place? BS popovers ne pas créer le même conflit, bien qu'ils nécessitent le même tooltip.js composante. Oui, ils sont plus stylisé, mais ne cause pas de mon JQuery UI les boutons pour aller bancale.
Je suis en utilisant Jquery UI uniquement pour coutume de saisie semi-automatique/zones de liste modifiables (ne peut donc pas revendiquer d'autres JQ-contrôles de l'INTERFACE utilisateur sont ok) et rien de ce qui précède travaillé pour résoudre la question CSS sur la zone de liste déroulante boutons de devenir "non stylé" lors de l'invocation de BS info-bulles. Commutation de BS, Popovers fourni essentiellement le même effet avec pas de conflits, pas de réorganisation de mon script importations, et non explicite pont instructions nécessaires.
Il est facile et la bonne solution, il suffit de réorganiser votre bootstrap et jquery ui lien de fichier comme ceci:
Il suffit de charger jQueryui avant le chargement de bootstrap fichier js. C'est un travail pour moi.
essayez d'utiliser jQuery.noConflict() et voir si cela vous aide à tous. Il ressemble bootstrap et jQuery sont en utilisant le même espace de noms, et peut-être le bootstrap et jQuery tooltips sont chargées dans la même fonction, ou l'un est chargé en premier.
Vous pouvez également vérifier pour voir qui de la bibliothèque est chargé en premier. Habituellement, si vous déclarez la même fonction deux fois en javascript le second est celui qui est utilisé.
Troisièmement, vérifiez les jQueryUI paquet (sur leur site) et voir si vous pouvez télécharger une version qui n'ont pas les info-bulles inclus (j'ai vérifié et c'est tout à fait faisable).
Un moyen facile est de charger bootstrap.js après jquery-ui.js, de sorte que le bootstrap .info-bulle des remplacements de jquery UI. Si vous utilisez un chargeur de module comme requirejs, alors vous pourriez faire de bootstrap dépend de jquery-ui, en tant que tel: