He buscado mucho y parece que no puedo encontrar una solución satisfactoria. Espero que alguien pueda ayudar.Javascript Detectar clave de control mantenida en Mouseup
Mientras uso jQuery, también estoy escribiendo miles de líneas de Javascript. Entonces, una solución javascript "pura" está bien.
Estoy tratando de determinar si la tecla de control se mantiene físicamente presionada en un evento de mouseup. Eso es; no hay otras condiciones previas. ¿Alguien sabe cómo hacer esto de manera confiable, entre navegadores?
he intentado almacenar esto en una variable de estado observando cuando se presiona y suelta la tecla:
// 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
Sin embargo, esto realmente no funciona. Si prueba esto usando Firebug y mira la consola, verá que la repetición automática parece suceder, y el valor cambia.
inspeccioné el evento mouseup para ver si hay algo útil allí, pero fue en vano:
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);
}
Cualquier ayuda se agradece.
Guau, no sabía que jQuery soportaba los eventos clave de esa manera. No puedo encontrar ninguna documentación de eso. Además, ¿funciona $(). Bind() (jQuery vacío), o solo es taquigrafía? Si es así, ¿está obligado a $ (documento)? – eyelidlessness
@eyelidlessness: Ese tipo de enlace proviene de un complemento llamado js-hotkeys http://code.google.com/p/js-hotkeys/ – CMS