Page 2 sur 2

Re: Onclick à remplacer par addEventListener

Posté : 26 août 2017, 17:32
par Frosty
Alors pour ton exercice :

- Dans la console ça m'affichait "cannot access property 'value' of undefined" pour cette ligne :

Code : Tout sélectionner

var demarre = document.getElementById('demarre').value;
Tout simplement car le champ "demarre" n'est pas connu par l'interpréteur Javascript tant que la page n'est pas complètement chargée
Il faut donc mettre tout le code entre

Code : Tout sélectionner

window.addEventListener("load",function(){ ... }
et pas seulement la fin

- Il y avait un souci avec cette ligne, setTimeout("chrono()", 100) n'était pas Ok (+ message dans la console, pas super explicite par contre), là je dois avouer que j'ai pas trop compris pourquoi car c'est censé fonctionner (cf. http://www.toutjavascript.com/reference ... imeout.php)

Bref, en mettant direct le nom de la fonction sans guillemets ni parenthèses (cf. cet autre exemple https://www.w3schools.com/jsref/met_win_settimeout.asp) c'est passé :

Code : Tout sélectionner

compte=setTimeout(chrono,100) //la fonction est relancée
=> A partir de là, le script tourne, à part qu'il y a un seul chiffre pour chaque champ heure/minute/seconde au lieu de 2 dès qu'on clique sur "Start", et que si on clique 2 fois sur "Start", le chronomètre... va 2 fois plus vite :mrgreen: cela dit ce n'est peut être pas le sujet de l'exercice

Bon courage

Re: Onclick à remplacer par addEventListener

Posté : 26 août 2017, 18:07
par moon136
Frosty a écrit :
26 août 2017, 17:32
Alors pour ton exercice :

- Dans la console ça m'affichait "cannot access property 'value' of undefined" pour cette ligne :

Code : Tout sélectionner

var demarre = document.getElementById('demarre').value;
Tout simplement car le champ "demarre" n'est pas connu par l'interpréteur Javascript tant que la page n'est pas complètement chargée
Il faut donc mettre tout le code entre

Code : Tout sélectionner

window.addEventListener("load",function(){ ... }
et pas seulement la fin

- Il y avait un souci avec cette ligne, setTimeout("chrono()", 100) n'était pas Ok (+ message dans la console, pas super explicite par contre), là je dois avouer que j'ai pas trop compris pourquoi car c'est censé fonctionner (cf. http://www.toutjavascript.com/reference ... imeout.php)

Bref, en mettant direct le nom de la fonction sans guillemets ni parenthèses (cf. cet autre exemple https://www.w3schools.com/jsref/met_win_settimeout.asp) c'est passé :

Code : Tout sélectionner

compte=setTimeout(chrono,100) //la fonction est relancée
=> A partir de là, le script tourne, à part qu'il y a un seul chiffre pour chaque champ heure/minute/seconde au lieu de 2 dès qu'on clique sur "Start", et que si on clique 2 fois sur "Start", le chronomètre... va 2 fois plus vite :mrgreen: cela dit ce n'est peut être pas le sujet de l'exercice

Bon courage

merci bcp pr ta reponse mais jai pas compris pour le debut avec demarre je mes mon code comment? il manque un mot a ta phrase jai pas compris dsl. pour settimeout ok jai compris ;)

Re: Onclick à remplacer par addEventListener

Posté : 26 août 2017, 20:04
par Frosty
En fait le mot manquant est la ligne de code que j'ai mis en dessous.
Ça permet d'exécuter le code une fois la page et ses éléments chargés et donc visibles par l'interpréteur JavaScript.

Re: Onclick à remplacer par addEventListener

Posté : 26 août 2017, 22:48
par moon136
Frosty a écrit :
26 août 2017, 20:04
En fait le mot manquant est la ligne de code que j'ai mis en dessous.
Ça permet d'exécuter le code une fois la page et ses éléments chargés et donc visibles par l'interpréteur JavaScript.
Un Grand merci Frosty , tu m'a encore beaucoup aidé ;)