Ho cercato un buon affare e non riesco a trovare una soluzione soddisfacente. Spero che qualcuno possa aiutarti.Rileva Javascript Chiave di controllo trattenuta sul mouse
Mentre sto usando jQuery, sto anche scrivendo molte migliaia di righe di Javascript. Quindi una soluzione javascript "pura" va bene.
Sto provando a determinare se il tasto di controllo viene tenuto premuto fisicamente su un evento mouseup. Questo è tutto; non ci sono altre condizioni preliminari. Qualcuno sa come farlo in modo affidabile, cross-browser?
Ho provato memorizzare questo in una variabile di stato notando quando viene premuto il tasto e rilasciato:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = true;
console.debug(hash_state.sw_ctrldn);
});
$().bind('keyup','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = false;
console.debug(hash_state.sw_ctrldn);
});
// END store control key status in hash_state
Tuttavia, questa realtà non funziona. Se esegui il test usando firebug e guardi la console, vedrai che la ripetizione automatica sembra avvenire e il valore cambia.
ho ispezionato l'evento MouseUp per vedere se c'è qualcosa di utile lì, ma inutilmente:
var debugEvent = function(arg_obj_e){
var str = '';
for (var attr in arg_obj_e){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
Qualsiasi aiuto sarebbe apprezzato.
Wow, non sapevo che jQuery supportasse gli eventi chiave in quel modo. Non riesco a trovare alcuna documentazione di esso. Inoltre, funziona $(). Bind() (vuoto jQuery) o è solo una scorciatoia? Se è così, è legato a $ (documento)? – eyelidlessness
@eyelidlessness: questo tipo di binding proviene da un plug-in chiamato js-hotkeys http://code.google.com/p/js-hotkeys/ – CMS