2013-05-15 7 views

ответ

6

event.which возвращает код символа. пространство код ключа 32, так что используйте его вместо:

if (e.which === 32) { 
    // 
} 

Другой способ заключается в преобразовании символов на символ кода с .charCodeAt():

if (e.which === " ".charCodeAt(0)) { 
    // 
} 

ПРОВЕРКА:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

+0

+1 , но просто любопытно, почему '===' в этом сценарии, а не только '=='? Нечего делать, просто интересно. – mattytommo

+0

=== избегать некоторых тестов синтаксического анализа –

+1

@mattytommo Это просто хорошая практика использовать '===' всюду в JS, за исключением случаев, когда вы сознательно предполагаете неявное литье типов. – VisioN

4

Написать проверьте код и сообщите, что такое keyCode.

document.onkeypress = function(e) { 
    e = e || window.event; 
    console.log(e.keyCode || e.which); 
}; 

Научитесь отлаживать, и вы не будете задавать эти простые вопросы.

Jquery бы

$(document).keypress( 
    function (e) { 
     console.log(e.which); 
    } 
); 
+2

+1 - Научите человека, как ловить рыбу ...;) – webnoob

+0

Если бы он отлаживал IE, это на самом деле вызывало ошибку, поскольку 'console.log' не существует :) – mattytommo

0

Вероятно, это то, что вы ищете: (. Предполагая, что вы используете KeyDown событие)

if(e.keyCode == '32') { 
    // Your code 
} 

jsFiddle: http://jsfiddle.net/DeHFL/

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