Захват нажатия клавиши (или нажатия клавиши) на элементе DIV
Как вы захватываете событие нажатия клавиш или клавиш на элементе DIV (используя jQuery)?
Что необходимо для фокусировки элемента DIV?
Ответы
Ответ 1
(1) Установите атрибут tabindex
:
<div id="mydiv" tabindex="0" />
(2) Привязать к keydown:
$('#mydiv').on('keydown', function(event) {
//console.log(event.keyCode);
switch(event.keyCode){
//....your actions for the keys .....
}
});
Чтобы установить фокус на старте:
$(function() {
$('#mydiv').focus();
});
Чтобы удалить - если вам это не нравится - границу фокуса div
, установите outline: none
в CSS.
Посмотрите таблицу кодов клавиш для большего keyCode
возможностей keyCode
.
Весь код, предполагающий, что вы используете jQuery.
#
Ответ 2
HTML-атрибут tabindex указывает, может ли быть сфокусирован его элемент, и если/где он участвует в последовательной навигации по клавиатуре (обычно с клавишей Tab
). Читайте MDN Web Docs для полной справки.
Использование Jquery
$( "#division" ).keydown(function(evt) {
evt = evt || window.event;
console.log("keydown: " + evt.keyCode);
});
#division {
width: 90px;
height: 30px;
background: lightgrey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="division" tabindex="0"></div>
Ответ 3
Вот пример на простом JS:
document.querySelector('#myDiv').addEventListener('keyup', function (e) {
console.log(e.key)
})
#myDiv {
outline: none;
}
<div
id="myDiv"
tabindex="0"
>
Press me and start typing
</div>