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
A voir également:
- Gros problème en Javascript
- Telecharger javascript - Télécharger - Langages
- Afficher un tableau javascript en html ✓ - Forum Javascript
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
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...
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() ?
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() ?