Comment intercepter l'événement de frappe ou d'abaissement de touche sur un élément DIV (à l'aide de jQuery)?
Que faut-il pour donner le focus à l'élément DIV?
(1) Définissez l'attribut tabindex
:
<div id="mydiv" tabindex="0" />
(2) Lier à keydown:
$('#mydiv').on('keydown', function(event) {
//console.log(event.keyCode);
switch(event.keyCode){
//....your actions for the keys .....
}
});
Pour activer le démarrage:
$(function() {
$('#mydiv').focus();
});
Pour supprimer - si cela ne vous plaît pas - la bordure de mise au point div
, définissez outline: none
dans le CSS.
Voir le tableau de codes clés pour plus de keyCode
possibilités.
Tout le code en supposant que vous utilisiez jQuery.
tabindex L'attribut HTML indique si son élément peut être focalisé et si/où il participe à la navigation séquentielle au clavier (généralement avec la touche Tab
. ). Lisez MDN Web Docs pour une référence complète.
$( "#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>
var el = document.getElementById("division");
el.onkeydown = function(evt) {
evt = evt || window.event;
console.log("keydown: " + evt.keyCode);
};
#division {
width: 90px;
height: 30px;
background: lightgrey;
}
<div id="division" tabindex="0"></div>
Voici un exemple sur la plaine 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>