J'utilise des info-bulles d'amorçage Twitter avec javascript comme suit:
$('a[rel=tooltip]').tooltip();
Mon balisage ressemble à ceci:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Cela fonctionne bien, mais j'ajoute des <a>
éléments dynamiquement et les info-bulles ne s'affichent pas pour ces éléments dynamiques. Je sais que c'est parce que je ne lie .tooltip () qu'une seule fois lorsque le document est terminé chargé avec la $(document).ready(function()
fonctionnalité jquery typique .
Comment puis-je le lier à des éléments créés dynamiquement? Habituellement, je le fais via la méthode jquery live (). Cependant, quel est l'événement que j'utilise pour lier? Je ne sais pas comment connecter le bootstrap .tooltip () avec jquery .live ().
J'ai trouvé une façon de faire fonctionner ça, c'est quelque chose comme ça:
/* Add new 'rows' when plus sign is clicked */
$("a.add").live('click', function () {
var clicked_li = $(this).parent('li');
var clone = clicked_li.clone();
clone.find(':input').each(function() {
$(this).val('');
});
clicked_li.after(clone);
$('a[rel=tooltip]').tooltip();
});
Cela fonctionne, mais semble un peu hackish. J'appelle également exactement la même ligne .tooltip () dans l'appel $ (ready). Ainsi, les éléments qui existent lorsque la page se charge pour la première fois et correspondent à ce sélecteur se retrouvent-ils deux fois avec l'info-bulle?
Je ne vois aucun problème avec cette approche. Je cherche juste une meilleure pratique ou une compréhension du comportement.
la source
rel
attribut. Ce n'est pas sémantique et a été créé il y a plus de dix ans comme un hack. De nos jours, chaque navigateur datant de plusieurs années prend en charge lesdata-*
attributs et il n'y a plus de raison de ne pas les utiliser.Réponses:
Essaye celui-là:
la source
Si vous souhaitez initialiser plusieurs configurations d'infobulles, cela fonctionne bien pour moi.
Vous pouvez ensuite définir la propriété sur des éléments individuels à l'aide d'
data
attributs.la source
Pour moi, attraper uniquement l'événement mouseenter était un peu bogué et l'info-bulle ne s'affichait pas / ne se cachait pas correctement. J'ai dû écrire ceci, et cela fonctionne maintenant parfaitement:
la source
J'ai posté une réponse plus longue ici: https://stackoverflow.com/a/20877657/207661
TL; DR: Vous n'avez besoin que d'une seule ligne de code qui s'exécute dans un événement prêt pour le document:
D'autres codes plus compliqués suggérés dans d'autres réponses ne semblent pas nécessaires (j'ai testé cela avec Bootstrap 3.0).
la source
Pour moi, ce js reproduit le même problème qui se produit avec Paola
Ma solution:
la source
Plutôt que de le rechercher dans tout le corps. On pourrait simplement utiliser l'option de titre dynamique déjà disponible dans de tels scénarios, je pense:
la source
J'ai trouvé qu'une combinaison de ces réponses m'a donné le meilleur résultat - me permettant de toujours positionner l'infobulle et de la fixer au conteneur correspondant:
HTML pertinent:
la source