/ Published in: jQuery
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)
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)
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
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); }