J'essaie de coder une infobulle (Oui je sais, j'ai mes raisons d'éviter les plugins dans ce cas) en jQuery.
Lorsque j'affiche l'infobulle et que je laisse la souris au même endroit, l'affichage et le masquage se répètent indéfiniment. C'est comme si l'élément déclenchait l'événement de survol encore et encore et encore.
J'ai essayé de délier l'événement mais cela ne fonctionne pas non plus.
$("td.with-tooltip").mouseover( function() {
var offset = $(this).offset();
var baseX = offset.left;
var baseY = offset.top;
var inputWidth = $(this).width();
var baseX = baseX + 50;
var baseY = baseY - $(".desc").height();
$(".desc div").html($(this).attr("title"));
$(".desc").css({"position":"absolute", "left": baseX, "top": baseY }).fadeIn();
$(this).unbind("mouseover");
}).mouseleave( function() {
$(".desc").fadeOut();
});
Qu'est-ce que je peux faire ?
Merci.
J'ai résolu le problème avec ce code, merci à tous, vraiment.
var t;
var xOffset;
var yOffset;
$("td.with-tooltip").hover(function(e){
t = $(this).attr("title");
$(this).attr("title", "");
$(".desc div").text(t);
xOffset = $(".desc").height() + 30;
yOffset = -20;
$(".desc").css("position","absolute")
.css("botton",(e.pageY + xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px").fadeIn("fast");
},
function(){
$(this).attr("title", t);
$(".desc").fadeOut("fast");
});
$("td.with-tooltip").mousemove(function(e){
$(".desc")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});