Bonjour,
J'essaye d'exécuter une fonction javascript lorsque je sors d'un DIV avec la souris.
Le problème est que lorsque je fais un "onmouseout", l'évènement s'applique aussi lorsque je passe sur un <a> contenu dans le div.
Quelqu'un aurait-il une solution ?
Zeph Le 16/06/2009 à 15:49 Solution crade en attendant d'avoir mieux : tu ne peux pas tout simplement comparer les coordonnées de ton DIV à celles de la souris (que tu connais via la structure "event" fournie par "onmouseout") pour savoir si tu en es réellement sorti ?
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Zephyr> Le résultat fonctionne comme je le souhaite. Par contre, c'est effectivement pas très "propre"... ! En tout cas merci beaucoup.
Si quelqu'un a d'autres idées à proposer, je suis preneur (sans vouloir t'offenser Zephyr, hein ^^)
vince Le 16/06/2009 à 18:51 Et en supprimant les <a> contenus dans le div?
On pourrait se baser sur la propriété returnValue d'un événement. L'idée c'est que si l'événement à lieu dans <A> on met returnValue à une valeur genre 1 ou autre. Si l'évent à lieu dans le DIV returnValue est égal à null.
Je sais pas si returnValue = true casse la propagation de l'événement. Car si c'est le cas il suffirait de mettre event.returnValue = true dans <A> et le problème serait réglé.
Si event.returnValue ne fonctionne pas bien. Essayer tout simplement de faire un return true dans la fonction appelée par onmouseout sur la balise <A>.
geogeo Le 16/06/2009 à 21:51Edité par geogeo le 17/06/2009 à 10:48 Bah le seul truc que je vois alors c'est de créer une classe CSS fictive dans le DIV. De faire un handler d'event, à l'apparition d'un onmouseout de remonter dans la hiérarchie au dernier DIV, si il a la classe fictive alors c'est que l'on été dans une balise contenu dans le DIV en question sinon c'est qu'on est bien sortie du DIV.
onur Le 17/06/2009 à 03:11 Moi ce que je fais dans des cas comme ça, j'overload onmouseover et onmouseout du div ET de la balise A. Je fais incrémenter/décrémenter un compteur.
Je fais ça surtout avec deux divs mais ça marchera aussi avec un div et un a. Par contre cette méthode ne marche que si ton a est complétement à l'intérieur ou est complètement à l'extérieur de ton div.
Tout ce qui passe pas par le port 80, c'est de la triche.