J’utilise cette info-bulle de jquerytools:
$("li img").tooltip({ position: "bottom right"});
et souhaitez y insérer un lien à partir d’un lien “Plus d’infos” existant dans le même lien:
var morelink; morelink = $(this).find("li a").attr("href"); $(".tooltip").append('More Info');
le voici dans un violon raté:
http://jsfiddle.net/nathanbweb/tEVnt/
Comment enchaîner les deux, ou utiliser .each, pour obtenir le bon lien dans l’info-bulle?
Ce n’est pas particulièrement facile en raison de la façon dont les info-bulles sont ajoutées et il ne semble pas y avoir de lien direct entre l’object et l’info-bulle qui soit facile à comprendre.
Ce qui est légèrement plus facile à faire est quelque chose comme ceci, ajoutez le lien au titre, avant qu’il ne devienne une info-bulle:
// add tooltip from jquerytools $("li img").each(function(){ var obj = $(this); var link = obj.next('a').attr('href'); if (link !== undefined) { var title = obj.attr('title'); title = title+' More Info'; obj.attr('title', title); } obj.tooltip({ position: "bottom right",}); });
li
qui a un img
Voyez-le travailler ici
Votre meilleur choix serait probablement de créer votre propre info-bulle pour chaque image.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tincidunt rhoncus risus sed rhoncus. More Info
Construisez l’info-bulle comme:
$(".tooltip").each(function(){ var obj = $(this); obj.append(obj.prev().attr("title"), obj.next().clone()); });
Selon la documentation de jQuery-tools, l’ajout d’un conteneur .tooltip juste après l’élément envoyé au plug-in devrait suffire.
Mettez ce code:
$.fn.outerHtml = function() { if (this.length) { var div = $(''); var clone = $(this[0].cloneNode(false)).html(this.html()).appendTo(div); var outer = div.html(); div.remove(); return outer; } else return null; }; $('li').each(function(){ $(this).children("img").attr("title", $(this).children("img").attr("title") + $(this).children("a").outerHtml()); });
Juste avant
$("li img").tooltip({ position: "bottom right"});
Cela crée une extension .outerHtml à jquery qui vous permet d’obtenir le code HTML complet d’un élément. Ensuite, nous l’ajoutons au titre AVANT qu’il soit transformé en info-bulle.
Je viens de l’essayer sur votre clavier et cela fonctionne bien.