Aide bienvenue... Pb avec setTimeout qui n'exécute qu'1 seule fois... [Résolu]

Signaler
Messages postés
5
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2006
-
Messages postés
5
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2006
-
Bonjour,



J'ai un petit problème avec le code souce ci-dessous. Le pb est que la
fonction setTimeout() execute correctement le code, mais uniquement 1
fois, et pas périodiquement...



Ca fait 1 heure que je cherche pourquoi, mais j'ai pas encore trouvé. Alors grand merci pour votre aide...



Déclenchement: par boutons de navigations (balises img) avec
OnMouseDown="deplaceCalque('scrollCalque', valeur_sur_x, valeur_sur_y);"

et OnMouseOut="stopDefile();"



Le code:



function deplaceCalqueDe(idCalque,stepX,stepY){

if (okDefile == 1) {

calqueStyle = styleCalque(idCalque);

calqueStyle.left = parseInt(calqueStyle.left) + stepX;

calqueStyle.top = parseInt(calqueStyle.top) + stepY;

}

}



function styleCalque(idCalque){

if (document.all) calqueStyle = document.all[idCalque].style;

if (document.layers) calqueStyle = document.layers[idCalque];

if (document.getElementById) calqueStyle = document.getElementById(idCalque).style;

return calqueStyle;

}





function deplaceCalque(idCalque,StepX,StepY){

okDefile=1;

setTimeout("deplaceCalqueDe('"+idCalque+"',"+StepX+","+StepY+")",300);

}



function stopDefile(){

okDefile=0;

}

1 réponse

Messages postés
5
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2006

Eureka!

Bon, faut avouer que certaines docs (notamment "JavaScript CookBook" de MicroApp) pourraient être plus précises... notamment sur les subtilité de certaines méthodes...

Il fallait en fait répéter la fonction setTimeout après chaque "deplaceCalqueDe" pour relancer le timer...

Pour l'info, le bouquin disait uniquement:

"setTimeout(): Permet de faire appel à une autre fonction Javascript dans un intervalle de temps donné..."

...sans plus de détail sur le fonctionnement du timer intégré, ce qui pouvait laisser penser que le timer se relancait de lui-même une fois l'autre fonction javascript éxécutée... Mais que ni ni!! il n'en est rien...

Alors merci à... moi! pour m'être cassé la tête avec ce problème de débutant... que je ne croyais pourtant ne plus être.