Est-il possible de capturer l'événement d'une combinaison de touches du clavier, dans un seul élément du DOM? Je veux dire, ce que je veux c'est que si j'ai un

<div id="k"><input id="text" type="text"></div>
<div id="j"><input id="text" type="text"></div>

Et je veux juste prendre la combinaison de clés Ctrl+H sur le div avec l'id "k"

0
Pedro Jose 13 avril 2018 à 09:57

3 réponses

Meilleure réponse

Résolution de l'ajout d'un tabindex 1 à l'élément ".upper-canvas" (oui avec un espace vide), puis la liaison de la pression sur le ".upper-canvas" avec jQuery.

var canvas = new fabric.Canvas('c');
$(document).ready(function(){
    $(".upper-canvas ").attr('tabindex', 1);
})
$(".upper-canvas ").on("keydown", function(event){
    console.log("Hi");
});

JSFiddle Solution

1
Pedro Jose 16 avril 2018 à 08:10

Vous pouvez lier un événement keydown (ou keyup). Vérifiez ensuite si la touche Ctrl est enfoncée à l'aide de la propriété event.ctrlKey et obtenez la touche actuellement enfoncée à l'aide de la propriété event.key. Si les deux sont pressés, event.ctrlKey && event.key == 'h' sera vrai.

Notez qu'à la fin du gestionnaire d'événements, j'appelle { {X0}}. Il empêche l'action par défaut, dans ce cas, le raccourci du navigateur de Ctrl + H d'être activé.

$("#k").on("keydown", function(event) {
  console.log(event.ctrlKey, event.key);
  
  if (event.ctrlKey && event.key == 'h') {
    alert("Ctrl + H pressed");
  }
  
  event.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="k"><input id="text" type="text"></div>
<div id="j"><input id="text" type="text"></div>
0
Nisarg 13 avril 2018 à 07:42

Essayez d'utiliser

<input id="text" type="text" onkeydown="myFunction1(event)"></div>
<div id="j"><input id="text" type="text"></div>
<script>
function myFunction1(ev) {console.log(ev);}
</script>

Vous pouvez également lire à W3schools

1
Akash Srivastava 13 avril 2018 à 07:11