Sto cercando di fare in modo che il colore dello sfondo cambi quando alcuni tasti vengono premuti. Ad esempio, quando si tiene premuto il tasto 'r', lo sfondo dovrebbe essere rosso. Quando il tasto 'r' non viene più premuto, lo sfondo dovrebbe essere impostato su bianco.keydown + eventi keyup per chiavi specifiche
$(document).ready(function() {
$('body').keydown(function(e){
if(e.keyCode == 114){
$(this).css({'background':'red'});
}
if(e.keyCode == 121){
$(this).css({'background':'yellow'});
}
});
$('body').keypress(function(e){
if(e.keyCode == 114){
$(this).css({'background':'red'});
}
if(e.keyCode == 121){
$(this).css({'background':'yellow'});
}
});
$('body').keyup(function(e){
if(e.keyCode == 114){
$(this).css({'background':'white'});
}
if(e.keyCode == 121){
$(this).css({'background':'white'});
}
});
});
Il problema che sto avendo è che la chiave non funziona in modo specifico per ogni singola chiave.
$('body').keyup(function(e){
$(this).css({'background':'white'});
});
lo so se mi tolgo la se condizionali da keyup del tutto allora si comporteranno come ho detto volevo che - ma voglio essere in grado di fare cose diverse in seguito utilizzando keyup con tasti specifici. Ad esempio, quando viene rilasciato solo il tasto 'b', forse dirà qualcosa sullo schermo come "Hai appena rilasciato il tasto b!" Come posso tenere traccia degli eventi keydown e keyup per chiavi specifiche e far accadere cose diverse per ciascuna? So che questo non è molto organizzato sia (sono abbastanza nuovo a questo roba), quindi se c'è un modo completamente diverso e migliore di fare questo ...
hai provato usando 'e.which' invece di' e.keyCode'? http://stackoverflow.com/a/302161/2111457 – uross