11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerais que lorsque que l'on appuie une deuxième fois sur la touche a,
La fonction éxecute le code :
beepThree.pause();


J'ai eu l'idée d'utiliser une variable.
Le problème est que lorsque je lance une seconde fois la fonction keydown, la var a s'est réinitialisé.
Comment faire pour qu'elle ne se réinitialise pas ? Où existe-t-il une autre solution ?

window.onkeydown = keydown;
 var a = 1;

			function keydown(event) {
                                  var a = 1;
				  var keycode = (event.keyCode ? event.keyCode : event.which);
				  //si c'est la touche A
				  if ( keycode == 65 ) {
					//lecture audio #beepThree
					beepThree.play();					
				} else if ( keycode == 65 && a == 2) {
					beepThree.pause();
					var a = a - 1;
				} else if ( keycode == 66 ) {
					beepThree.pause();
					var a = a - 1;
				} else { 					
					event.preventDefault();
				}
			}


J'espère que vous pourrez m'aidez ! C'est pour un exercice avec ma licence pro
Modifié par Cecile_ (08 Nov 2014 - 22:16)
Il ne faut pas la déclarer plusieurs fois :
La première fois :
var a = 1

Mais ensuite :
a = a-1
Et la déclaration/initialisation doit être avant la fonction. Il faut supprimer le deuxième "var a=1", celui qui est dans la fonction.
salut,
je ne sais pas trop si ça a marché, j'ai l'impression que tu n'incrémente ta variable "a" à aucun moment.
Je ne sais pas si j'ai bien saisi, peut être ?

window.onkeydown = keydown;
 var a = 0;

function keydown(event) {
                                  a++;
				  var keycode = (event.keyCode ? event.keyCode : event.which);
				  //si c'est la touche A
				  if ( keycode == 65 ) {
					//lecture audio #beepThree
					beepThree.play();					
				} else if ( keycode == 65 && a == 2) {
					beepThree.pause();
					a--;
				} else if ( keycode == 66 ) {
					beepThree.pause();
					a--;
				} else { 					
					event.preventDefault();
				}
			}

Pour comprendre un peu la portée des variables, dans ce que tu as fait, il existe deux variables "a". Une qui est globale et l'autre propre à la fonction "keydown". Ces deux variables n'ont rien à voir l'une avec l'autre même si elles ont le même nom.