Gros problème en Javascript
Fermé
site12
Messages postés
420
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour
voici un bout de mon code en javascript
et ça me met: TypeError: undefined is not an object (evaluating 'e.keyCode')
donc le e.keyCode, il sait pas ce que c'est ? Mais je comprend pas, merci de bien vouloir me dire comment on fais pour que ça marche
merci d'avance
voici un bout de mon code en javascript
document.onkeydown = deplacer;
function deplacer(e) {
if (e.keyCode == 39) {
barreX += 4;
}
else if (e.keyCode == 37) {
barreX -= 4;
}
}
deplacer();
et ça me met: TypeError: undefined is not an object (evaluating 'e.keyCode')
donc le e.keyCode, il sait pas ce que c'est ? Mais je comprend pas, merci de bien vouloir me dire comment on fais pour que ça marche
merci d'avance
2 réponses
-
Bonjour,
La fonction de document.onkeydown ne prends aucun paramètre, donc même si tu as une fonction avec un paramètre e, celui-ci vaudra undefined au moment de l'appel, or "undefined is not an object" il ne peut donc pas faire "e.keyCode" puisqu'en fait e ne vaut rien...
Plutôt qu'utiliser onkeydown sur document, tu devrais l'utiliser sur un input par exemple, dans ce cas la fonction onkeydown prendra bien le paramètre du type que tu attends... -
Bonjour
Quand le gestionnaire d'événements appelle ta fonction, il lui passe bien un événement en paramètre et ton (e.keyCode == 37) est parfaitement correct.
Par contre, quand toi tu appelles directement deplacer(); dans ton code ci-dessus, tu ne lui passes aucun paramètre : dans ce cas là, e est bien "undefined".
D'ailleurs cet appel n'a pas grand sens : il est sensé gérer l'appui sur une touche, mais quelle touche quand tu appelles directement deplacer() ?