1

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 ?
Rest... In... Peace

2

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 ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

CoppeR (./1) :
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 ?

question conne, est-ce que si tu interceptes le onmouseout sur le <A> (genre onmouseout="return false;"), il applique le onmouseout de l'événement parent (le <DIV>) ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

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 ^^)
Rest... In... Peace

5

Non mais je sais que c'est naze comme solution, t'inquiètes pas grin

(celle de Flan mérite d'être essayée ^^)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

Flanker (./3) :
CoppeR (./1) :
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 ?

question conne, est-ce que si tu interceptes le onmouseout sur le <A> (genre onmouseout="return false;"), il applique le onmouseout de l'événement parent (le <DIV>) ?

Cross: je viens de faire le test, il effectue "onmouseout" du DIV quand même.
Rest... In... Peace

7

Et en supprimant les <a> contenus dans le div?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

8

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>.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

9

geogeo (./8) :
Essayer tout simplement de faire un return true dans la fonction appelée par onmouseout sur la balise

à priori, le problème n'est pas de stopper la propagation du mouseout déclenché sur a quand on quitte a, mais qu'un mouseout est levé sur le div quand on entre dans le a
(en gros, entrer dans le a contenu dans le div est perçu comme quitter le div)

enfin, c'est ce qui ressort des essais que j'ai fait... et je n'ai pas trouvé de solution pour ne pas avoir de mouseout levé sur le div lors de l'entrée sur le a (à la limite, on doit pouvoir faire un truc de porc avec le mouseover du a, en ajoutant quelques conditions dans la gestion du mouseout du div... mais c'est la mort)

(ou j'ai mal compris ^^ )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

10

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.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

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.