JeuWeb - Crée ton jeu par navigateur
[javascript] mouseout , bouillonnement propagation etc.. - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [javascript] mouseout , bouillonnement propagation etc.. (/showthread.php?tid=3470)



[javascript] mouseout , bouillonnement propagation etc.. - Ter Rowan - 22-12-2008

salut !
je fignole mon menu contextuel et je me retrouve avec une difficulté sur la gestion d'événement que je n'avais pas prévu :pleure2:

pour rappel, voici la structure du "menu" :

Code PHP :
<?php 
<div id="menu">
<
ul>
<
li><a href="#">toto</a></li>
<
li><a href="#">tutu</a></li>
<
li><a href="#">tata</a></li>
</
ul>
</
div>

et là, je positionne un événement :
Code PHP :
<?php 
Event
.observe($("menu"),'mouseout',sortie, true);
function
sortie()
{
alert("sortie");
}
j'utilise pour ce faire le gestionnaire d'événement de prototype

mon problème :
le système répond (j'ai mon alerte "sortie") dès que je quitte avec la souris la zone du div menu, ça c'est bien, mais aussi dès que je quitte une zone balisée à l'intérieur du menu (ex <a> ou <li> ) et là c'est moins bien.

Par exemple j'ai le curseur sur o de toto, je déplace le curseur vers le bas pour cliquer sur tutu. Dès que je quitte toto pour tutu, tout en restant dans le menu, l'événement se déclenche.

Donc voilà, j'aimerais comprendre ce mécanisme. J'ai utilisé le dernier paramètre (ici true) de la fonction création d 'événement sensé bloquer la "propagation" vers le plus petit élément de l'événement mais quelque soit le paramètre (true ou false) ça me donne le même effet

Est ce dû à prototype ? dois je développer moi même dans la fonction sortie un test du genre "je ne suis plus dans la zone menu donc je fais sinon je sors sans rien faire" ? Est ce que je n 'ai pas compris un point ? (je suis allé sur le site d'alsacréation, bien compris la descente puis remontée de l'événement, enfin je crois..., mais pourtant, ça veut pas marcher :'()