Quindi ho scritto questo script in modo da poterlo averescorciatoie da tastiera sul tuo sito web, e mi chiedevo come fare più chiavi (cioè invece di fare solo il tasto "freccia sinistra", sarebbe il "ctrl + freccia sinistra". Ecco la mia sintassi attuale:
var arrow = {
left: 37,
up: 38,
right: 39,
down: 40
};
function DoSomething() {}
$(document).ready(function() { // requires jQuery
$("body").keydown(function(event) {
if(event.keyCode == arrow.left) {
DoSomething();
}
}
}
Ma quello che mi piacerebbe fare è qualcosa del genere:
var arrow = {
left: 37,
up: 38,
right: 39,
down: 40
},
ctrl = 17;
function DoSomething() {}
$(document).ready(function() { // requires jQuery
$("body").keydown(function(event) {
if(event.keyCode == ctrl && arrow.left) {
DoSomething();
}
}
}
risposte:
5 per risposta № 1L'oggetto evento fornito in jQuery ti dice se il ctrl
il tasto viene premuto.
$(document).on("keydown", function (event) {
if (event.ctrlKey && event.which === arrow.left) {
console.log("You pressed left, and control.");
}
});
demo: http://jsfiddle.net/zcMXR/
1 per risposta № 2
jQuery lo fa già. Oltre a tenere traccia di quale tasto è stato premuto, è anche possibile ottenere informazioni sulla combinazione del tasto con alt
, ctrl
o shift
con le proprietà mostrate di seguito:
$(document).keydown(function(e) {
console.log("key code is: " + e.which + " " + (e.ctrlKey ? "Ctrl" : "") + " " +
(e.shiftKey ? "Shift" : "") + " " + (e.altKey ? "Alt" : ""));
});
Quindi, per verificare se la combinazione di tasti è Ctrl + Su, la tua condizione sarà simile a:
if( e.which == 38 && e.ctrlKey ){
console.log("You pressed Ctrl+Up");
...
}