L'info-bulle jQuery ne fonctionne pas dans IE
-
07-07-2019 - |
Question
J'utilise l'infobulle jquery et voici le code correspondant
Javascript :
this.tooltip = function()
{
var xOffset = -10;
var yOffset = -175;
$("a.tooltip").hover(function(e)
{
this.t = this.title;
this.title = "";
var breakdownData = "";
var header = "<b>This document contains:</b><br />";
switch(this.id)
{
case '_ctl0_MasterContentPlaceHolder_hpl_DownloadCCPS1':
breakdownData = "<div style='padding-left:30px;'><br /></div>";
break;
case '_ctl0_MasterContentPlaceHolder_hpl_DownloadCCPS2':
breakdownData = "<div style='padding-left:30px;'></div>";
break;
case '_ctl0_MasterContentPlaceHolder_hpl_DownloadCCPS3':
breakdownData = "<div style='padding-left:30px;'></div>";
break;
case '_ctl0_MasterContentPlaceHolder_hpl_DownloadCCPS4':
breakdownData = "<div style='padding-left:30px;'></div>";
break;
}
$("body").append("<div id='tooltip' style='width:350px; padding-left:15px; font-size:11px;'>"+ header + breakdownData +"</div>");
$("#tooltip").css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast");
}, function() {
this.title = this.t;
$("#tooltip").remove();
});
$("a.tooltip").mousemove(function(e) {
$("#tooltip").css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
};
}
$(document).ready(setTimeout("tooltip()", 500));
CSS :
#tooltip
{
position:absolute;
border:1px solid #333;
background:#f7f5d1;
padding:2px 5px;
color:#333;
display:none;
width:350px;
}
Tout ce que j'ai à faire, c'est d'ajouter la classe d'infobulle à la balise d'ancrage, ce qui fonctionne bien. dans Firefox mais pas dans IE. Quelqu'un d'autre en at-il fait l'expérience?
Voici un lien vers l'original qui semble fonctionner parfaitement http://cssglobe.com / lab / tooltip / 01 /
Merci
La solution
J'ai pu le tester correctement dans FF3, IE6 et IE7. Quels problèmes rencontrez-vous?
J'ai cependant reçu un bogue dans Firebug:
fn.call is not a function jquery-1.2.6.js Line 2295 jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
Ce qui m'a amené à modifier votre fonction $ (document) .ready en:
$(document).ready(function(){ setTimeout("tooltip()", 500) });
Je ne sais pas si cela résoudra votre problème, mais essayez-le.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow