Salut, j’ai une fonction qui fonctionnait bien avec jQuery 1.3.2, mais j’essaie maintenant de l’exécuter avec 1.4.2 et j’obtiens l’erreur suivante «L’événement n’est pas défini». voici le code simplifié:
voici la fonction:
$(function () { $('area').bind('mouseover mouseleave', function () { var mytext = $('#mytext'); if (event.type == "mouseover") { var countyname = $(this).attr("alt"); mytext.html(countyname); mytext.addClass('textcontainer'); } else { mytext.text(''); mytext.removeClass('textcontainer'); } }) });
la classe rend le div mytext visible et met une ligne autour de lui, affichant le nom du comté en cours de basculement.
la rupture d’erreur dans firebug est sur la ligne définissant la variable mytext. mais je soupçonne que le problème est un problème de syntaxe ci-dessous: if (event.type == “mouseover”)
merci Liz
Vous devez nommer le paramètre event, comme ceci:
$('area').bind('mouseover mouseleave', function(event){ ^ add this
C’est un peu plus facile d’utiliser .hover()
cependant, comme ceci:
$(function() { $('area').hover(function(){ var countyname = $(this).attr("alt"); $('#mytext').html(countyname).addClass('textcontainer'); }, function() { $('#mytext').text('').removeClass('textcontainer'); }); });
Ce n’est pas exactement la même chose, mais un peu mieux en général, il utilise mouseenter
et mouseleave
plutôt que mouseover
et mouseout
(pour ne pas se déclencher lors de l’entrée / sortie des enfants).