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

Résolu
DaNifty Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2006 - 21 oct. 2005 à 15:04
DaNifty Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2006 - 21 oct. 2005 à 17:13
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;

}
A voir également:

1 réponse

DaNifty Messages postés 5 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2006
21 oct. 2005 à 17:13
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.
3
Rejoignez-nous