Ответ 1
Это должно сделать трюк. В нем указано, что при нажатии на пробел на странице/документе это не просто предотвращает его поведение по умолчанию, а возвращается к исходному состоянию.
return false, кажется, включает preventDefault. Источник
Проверить JQuery API для получения дополнительной информации о событиях, связанных с keydown - http://api.jquery.com/keydown/
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
Пример JQuery
$(document).keydown(function(e) {
if (e.which == 32) {
return false;
}
});
ИЗМЕНИТЬ
Как сказал @amber-de-black, "вышеуказанный код блокирует нажатие клавиши пробела на вводе HTML". Чтобы исправить это, вы e.target
, где именно вы хотите заблокировать пробел. Это может помешать пробелу блокировать другие элементы, такие как входы HTML.
В этом случае мы указываем пробел вместе с целью тела. Это предотвратит блокировку входов.
window.onkeydown = function(e) {
if (e.keyCode == 32 && e.target == document.body) {
e.preventDefault();
}
};
ПРИМЕЧАНИЕ. Если вы используете JQuery, используйте e.which
вместо e.keyCode
Источник.
The event.which property normalizes event.keyCode and event.charCode
JQuery действует как нормализатор для множества событий. Если это неожиданно для всех, кто это читает. Я рекомендую прочитать документацию Объект события.