Return to Snippet

Revision: 18263
at September 24, 2009 17:56 by marcocs


Initial Code
var arrShortCut = [{ name: 'test1', key: 15, fx: 'alert(1);' }, { name: 'test2', key: 90, fx: 'alert(2);'}];

var iShortCutControlKey = 17; // CTRL;
var bIsControlKeyActived = false;

$(document).keyup(function(e) {
    if (e.which == iShortCutControlKey) bIsControlKeyActived = false;
}).keydown(function(e) {
    if (e.which == iShortCutControlKey) bIsControlKeyActived = true;
    if (bIsControlKeyActived == true) {
        jQuery.each(arrShortCut, function(i) {
            if (arrShortCut[i].key == e.which) {
                execShortCut(arrShortCut[i].fx);
                return;
            }
        });
    }
});

function execShortCut(fx) {
    eval(fx);
}

Initial URL

                                

Initial Description
Una forma de vincular combinaciones de teclas con ejecución de codigo.
se supone que tengamos un array (arrShortCut) que define lo siguiente:
un nombre (solo para referencia) ;
un codigo teclado (http://www.js-x.com/page/tutorials__key_codes.html)
una función a ejecutar
en la variable "iShortCutControlKey" definimos cual es la tecla de control (en este caso 17 CTRL) ;
al keydown, si es la tecla control "activamos el estado";
al keyup, si es la tecla control "desactivamos el estado";
si se verifica un keydown de una tecla "no control" con "el estado activo"
buscamos en el array si existe un preset para esa tecla;
si existe llamamos la funcion "execShortCut" que ... ejecuta la función;
Para probarlo solo pegar... CTRL+Z = alert(2)

Initial Title
Key Combination + Code Execution

Initial Tags

                                

Initial Language
jQuery