Не срабатывает событие keydown

199
18 декабря 2017, 16:00

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

document.addEventListener('keydown',witch_key_down); 
document.addEventListener('keyup',witch_key_up); 
 
function witch_key_down(e){	 
	if (event.keyCode=='18') window.alt=true;		 
	document.getElementById('output').innerHTML=window.alt; 
} 
 
 
 
function witch_key_up(e){	 
	window.alt=false;				 
	document.getElementById('output').innerHTML=window.alt; 
}
<div id="output">false</div>

Answer 1

Думаю проблема тут не в самом Javascript, а в самом нажатии на Alt. Потому что когда человек в браузере (как и в большинстве программ) нажимает просто Alt, то он попадает на меню браузера (и если нажать например стрелку ↓, то оно появится):


То есть, в итоге, все работает, но в сочетании с Alt, скорее всего, лучше работать одновременно с другими клавишами.

P.S. служебные клавиши можно проверять не по номеру keyCode, а вот так:

event.ctrlKey, event.altKey, event.shiftKey, event.metaKey

READ ALSO
Безопасно расширить плагин jquery

Безопасно расширить плагин jquery

Работаю с плагином dateRangePickerФункциональности не хватает

252
Вывод комментариев (ajax) bootsrap

Вывод комментариев (ajax) bootsrap

Привет! Только начал изучать jsВсю голову сломал

229
Изменение объектов JS

Изменение объектов JS

Почему здесь при модификации объекта из функции, не меняется исходный объект? Спасибо!!

220
Ключ как значение

Ключ как значение

Как получить ключ объекта или массива как значение по-мимо конструкции for

200