Onclick à remplacer par addEventListener
moon136
Messages postés
80
Statut
Membre
-
moon136 Messages postés 80 Statut Membre -
moon136 Messages postés 80 Statut Membre -
Bonjour,
dans mon fichier html jai la fonction onclik que je dois transformer par addEventListener à mettre dans mon fichier js..
voici mes codes :
je n'arrive pas a transformer avec la fonction addEventListener. est ce que je dois mettre document.getElementById ? sinon comment le remplacer par document.forsec.secc.value=" "+centi
merci de votre aide
dans mon fichier html jai la fonction onclik que je dois transformer par addEventListener à mettre dans mon fichier js..
voici mes codes :
<input type="button" value="Chrono" onclick="chrono()">
<input type="button" value="Tempo" onclick="clearTimeout(compte)">
<input type="button" value="RaZ" onclick="rasee()">
var centi=0
var secon=0
var minu=0
function chrono(){
centi++; //incrémentation des dixièmes de 1
if (centi>9){centi=0;secon++} //si les dixièmes > 9,
if (secon>59){secon=0;minu++} //si les secondes > 59,
document.forsec.secc.value=" "+centi
document.forsec.seca.value=" "+secon
document.forsec.secb.value=" "+minu
compte=setTimeout('chrono()',100)
//tous les 10° de secondes
}
function rasee(){
clearTimeout(compte)
centi=0;
secon=0;
minu=0;
document.forsec.secc.value=" "+centi
document.forsec.seca.value=" "+secon
document.forsec.secb.value=" "+minu
}
je n'arrive pas a transformer avec la fonction addEventListener. est ce que je dois mettre document.getElementById ? sinon comment le remplacer par document.forsec.secc.value=" "+centi
merci de votre aide
6 réponses
-
Bonjour,
Il faut mettre des ID à tes boutons ... puis tu pourras faire :var el = document.getElementById("id_du_bouton"); el.addEventListener("click", action, false);
Un peu de lecture : https://developer.mozilla.org/fr/docs/Web/API/EventTarget/addEventListener
.
-
merci j'ai essayé d'appliquer mais ca ne marche pas:
<form name="forsec"> <input type="text" size="3" name="secb" value="00"> <input type="text" size="3" name="seca" value="00"> <input type="text" size="3" name="secc"value ="00"> <input type="button" id="demarre" value="Start" /> <input type="button" id="pause" value="Pause" /> <input type="button" id="efface" value="clear" />
var centi=0 // initialise les dixièmes var secon=0 //initialise les secondes var minu=0 //initialise les minutes var demarre = document.getElementById('demarre').value; var pause = document.getElementById('pause').value; var efface = document.getElementById('efface').value; function chrono(){ centi++; //incrémentation des dixièmes de 1 if (centi>9){centi=0;secon++} //si les dixièmes > 9, //on les réinitialise à 0 et on incrémente les secondes de 1 if (secon>59){secon=0;minu++} //si les secondes > 59, //on les réinitialise à 0 et on incrémente les minutes de 1 document.forsec.secc.value=" "+centi //on affiche les dixièmes document.forsec.seca.value=" "+secon //on affiche les secondes document.forsec.secb.value=" "+minu //on affiche les minutes compte=setTimeout('chrono()',100) //la fonction est relancée //tous les 10° de secondes document.getElementById("demarre").action=true; } function rasee(){ //fonction qui remet les compteurs à 0 document.getElementById("demarre").action=false; centi=0; secon=0; minu=0; document.forsec.secc.value=" "+centi document.forsec.seca.value=" "+secon document.forsec.secb.value=" "+minu } function stop(){ clearTimeout(compte);//arrête la fonction chrono() document.getElementById("demarre").action=false; } window.addEventListener("load",function(){ document.getElementById('demarrer').addEventListener('click', chrono); document.getElementById('pause').addEventListener('click', stop); document.getElementById('efface').addEventListener('click', rasee); });
en fait dans le document js je sais pas comment régler, si je dois supprimer quelque chose ou modifier,,?
merci de ton aide jordane-
document.getElementById('demarrer').addEventListener('click', chrono)
L'ID c'est "demarre" et pas "demarrer". La console affiche quoi comme erreur ?- Déjà... à quel moment charges tu ton JS ?
Après le chargement de ta page ??
Sachant qu'il est fortement conseillé de placer tes JS ... a la fin de ton document.. juste avant le /body
car si tu l'as placé avant... normal que les getElementById ne fonctionnent pas... la page n'étant pas chargée et donc les éléments n'existant pas encore... - Je le met ici au niveau du head enfin pour chacun de mes script je fais comme ca..
<!DOCTYPE html PUBLIC> <html> <head> <meta charset="utf-8" /> <title>exercice11</title> <script src="script.js"></script> <link rel="stylesheet" type="text/css" href="docstyle.css" /> </head>
mais j'ai tester avnt le </body> mais ca marche pas non plus
-
-
Ah la il y a une erreur ds la console:
SyntaxError: missing } after function body[En savoir plus] script.js:48
</pre><menu type="context" id="actions"><menuitem id="goToLine" label="Aller à la ligne…" accesskey="l"></menuitem><menuitem id="wrapLongLines" label="Retour à la ligne automatique" type="checkbox" checked="true"></menuitem><menuitem id="highlightSyntax" label="Coloration syntaxique" type="checkbox" checked="true"></menuitem></menu></body></html>
ce qu'il y a en gras qui est surligné dans la console -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
<body> <form name="forsec"> <input type="text" size="3" id="secb" name="secb" value="00"> <input type="text" size="3" id="seca" name="seca" value="00"> <input type="text" size="3" id="secc" name="secc"value ="00"> <input type="button" id="demarre" value="Start" /> <input type="button" id="pause" value="Pause" /> <input type="button" id="efface" value="clear" /> </form> </body>
var centi=0; // initialise les dixièmes var secon=0; //initialise les secondes var minu=0; //initialise les minutes var demarre = document.getElementById("demarre").value; var pause = document.getElementById("pause").value; var efface = document.getElementById("efface").value; var compte function chrono(){ centi++; //incrémentation des dixièmes de 1 if (centi>9){centi=0;secon++} //si les dixièmes > 9, //on les réinitialise à 0 et on incrémente les secondes de 1 if (secon>59){secon=0;minu++} //si les secondes > 59, //on les réinitialise à 0 et on incrémente les minutes de 1 var centi = parseInt(document.getElementById("secc").value); var secon = parseInt(document.getElementById("seca").value); var minu = parseInt(document.getElementById("secb").value); compte=setTimeout('chrono()',100) //la fonction est relancée //tous les 10° de secondes document.getElementById("demarre").disabled=true; } function rasee(){ //fonction qui remet les compteurs à 0 document.getElementById("demarre").disabled=false; centi=0; secon=0; minu=0; document.getElementById("secc").value =centi; document.getElementById("seca").value =secon; document.getElementById("secb").value =minu; function stop(){ clearTimeout(compte);//arrête la fonction chrono() document.getElementById("demarre").disabled=false; } window.addEventListener("load",function(){ document.getElementById("demarre").addEventListener("click", chrono); document.getElementById("pause").addEventListener("click", stop); document.getElementById("efface").addEventListener("click", rasee); });
merci -
merci, le script marche sur jsfiddle uniquement pas sur les navigateurs
https://jsfiddle.net/FrostyZ/3pLh4r8y/
voici mon html complet mais bon le soucis est dans le fichier js
!DOCTYPE html PUBLIC> <html> <head> <meta charset="utf-8" /> <title>exercice11</title> <script src="script.js"></script> <link rel="stylesheet" type="text/css" href="docstyle.css" /> </head> <body> <form name="forsec"> <input type="text" size="3" name="secb" value="00"> <input type="text" size="3" name="seca" value="00"> <input type="text" size="3" name="secc" value="00"> <input type="button" id="demarre" value="Start" /> <input type="button" id="pause" value="Pause" /> <input type="button" id="efface" value="clear" /> </form> </body> </html>
merci