2016-12-09 3 views
-4

У меня есть одна проблема! В чем проблема? e.keyCode неизвестен. Я использую Google Chrome.Невозможно прочитать свойство 'keyCode' of undefined

function Miscari(e) { 
 
    var x = e.keyCode; 
 
    switch (x) { 
 
    case 37: 
 
     dir = 'left'; 
 
     break; 
 

 
    case 39: 
 
     dir = 'right'; 
 
     break; 
 

 
    case 38: 
 
     dir = 'up'; 
 
     break; 
 

 
    case 40: 
 
     dir = 'down'; 
 
     break; 
 
    } 
 
    //console.log(x); 
 
}

+1

как вы называете это? –

+0

Как вы называете 'Miscari'? –

+0

Где находится 'dir'? Где используется 'dir'? Как это называется? Мы могли бы использовать больше контекста. – DBS

ответ

1

Вам нужно добавить прослушиватель события, который ждет ключа вниз события.

function Miscari(e) { 
 
    var x = e.keyCode; 
 
    switch (x) { 
 
    case 37: 
 
     dir = 'left'; 
 
     break; 
 

 
    case 39: 
 
     dir = 'right'; 
 
     break; 
 

 
    case 38: 
 
     dir = 'up'; 
 
     break; 
 

 
    case 40: 
 
     dir = 'down'; 
 
     break; 
 
    } 
 
    console.log(x); 
 
} 
 

 
document.addEventListener('keydown', Miscari);

+0

У меня уже есть это. –

0

Если ваш код выполняется в ответ на события клавиатуры, вам будет хорошо, потому что все события функции обработки автоматически передается объект, представляющий событие, которое вызывается он и что объект события содержит свойства, которые имеют больше информации о событии, которое имело место.

В вашем случае ваша функция Miscari была настроена для получения события через аргумент e, но событие должно запускаться чем-то для события, которое должно быть сгенерировано и передано вашей функции.

Я изменил свой код для работы, как вы говорите, что у вас настроен ваш код, то есть когда документ получает ключ. Просто активируйте фрагмент снизу нажатием кнопки, а затем нажмите любую клавишу.

// This line will register the Miscari function as a keydown event handling 
 
// function when keys are pressed down while document is in focus. 
 
document.addEventListener('keydown', Miscari); 
 

 
function Miscari(e) { 
 
    var x = e.keyCode; 
 
    switch (x) { 
 
    case 37: 
 
     dir = 'left'; 
 
     break; 
 

 
    case 39: 
 
     dir = 'right'; 
 
     break; 
 

 
    case 38: 
 
     dir = 'up'; 
 
     break; 
 

 
    case 40: 
 
     dir = 'down'; 
 
     break; 
 
    } 
 
    console.log(x); 
 
}

Смежные вопросы