11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour bonjour,

J'aurrais besoin de votre aide pour un menu en javascript.
J'utilise des class du genre prototype et moo.fx.

Le probleme se situe dans le premier menu "Nouveautés"
Tous fonctionne bien par contre mon onmouseover délire si je sort trop tôt du menu.

Je pense pouvoir fixer le probleme avec un settimeout et peut etre un clearTimeOut, mais aprés mais nombreuse recherche je ne comprend toujours pas comment l'utiliser avec un onmouseover et onmouseout...

Voili voilà le lien ou vous pouvez voir la source ou encore pomper le code Smiley cligne

http://niksam.free.fr/help_temp/

Merci pour vos réponses
Modifié par niksam (18 Jul 2007 - 17:01)
Bonjour,

Déjà un conseil utilise deux fonction une pour l'ouvrir lors du onmouseover et la deuxieme pour le fermer lors du onmouseout.

Ensuite ajout ces fonction dans ton sous menu afin que lorsque tu te trouve dessus celui ci ne se referme pas.

Je pense que ca devrai te regler tes problemes.
Sinon pour utiliser un timeout avec un évènement comme onmouseXXX ou onclick, c'est un peu compliqué, parce que tu perds le contexte de l'objet dans la fonction exécutée par le timeout. (En clair : this => undefined dans la fonction du timeout)

Il existe une astuce pour palier le problème, je vais voir si je ne pourrais pas concocter un exemple. Par contre pas tout de suite, d'abord au lit!
Il suffit d'utiliser closure, du coup tu obtiens

element.onmouseOut = function() {
	var that = this;
	setTimeout(function() {otherStuff(that),100};
}


C'est une exemple rapide, mais en gros, il vaut mieux :

-Faire une réference dans setTimeout
-Utiliser addEvent (sur le site de Dean Edwards);