2010-03-01 16 views

Respuesta

1

Este es bastante bueno para jquery.

https://github.com/jeresig/jquery.hotkeys

+0

He descargado el archivo y lo he examinado. Es un ejemplo de uso de [jquery.hotkeys] (https://github.com/jeresig/jquery.hotkeys) –

+0

@NikolaPetkanski - he actualizado el enlace. –

+0

Gracias. He eliminado mi puntaje -1. –

1

Un montón de bibliotecas de JavaScript vienen repletos de formas de capturar información clave y utilizarla para su ventaja. Es una buena apuesta que puedas encontrar una biblioteca para hacer exactamente eso, y nada más. Sin embargo, no tengo mucha experiencia allí.

He estado usando Ext por un tiempo, y su clase KeyMap es realmente fácil de trabajar. Aquí hay un ejemplo simple de usarlo.

new Ext.KeyMap(Ext.getDoc(), { 
     key: 'abc', 
     alt: true, 
     handler: function(k, e) { 
      var t = Ext.getCmp('tabpanel'); 
      switch(k) { 
       case 65: 
        t.setActiveTab(0); 
        break; 
       case 66: 
        t.setActiveTab(1); 
        break; 
       case 67: 
        t.setActiveTab(2); 
        break; 
      } 
     }, 
     stopEvent: true 
    }); 

Esta falta clase, Ext.TabPanel, y permite al usuario presionar una tecla del teclado para cambiar las fichas, en lugar de hacer clic en las propias pestañas.

Por supuesto, puede hacer mucho más que esto. Este es un simple ejemplo de cómo funciona.

9

Trate KeyboardJS

su tan simple como

KeyboardJS.on('a', function(){ alert('hello!'); }); 

sin embargo tan flexible como

var bindInstance = KeyboardJS.on('ctrl + a, ctrl + b, c', function(event, keysPressedArray, keyComboString){ 

    //you get the event object 
    console.log('event object', event); 

    //you get the keys pressed array 
    console.log('keys pressed', keysPressedArray); 

    //you get the key combo string 
    console.log('combo pressed', keyComboString); 

    console.log('I will fire when \'ctrl + a\' or \'ctrl +b\' or \'c\' is pressed down'); 

    //block event bubble 
    return false; 

}, function(event, keysPressedArray, keyComboString) { 

    console.log('I will fire on key up'); 

    //block event bubble 
    return false; 

}); 

puede borrar una unión llamando

bindInstance.clear(); 

puede borrar todos los une con teclas específicas con

KeyboardJS.clear('a, b'); 

Su código abierto y disponible en Github. Su viene en ether una biblioteca global o un módulo de AMD para RequireJS.

Aquí hay un introduction video.

Allí, ahora deja de preocuparte por el teclado y codifica tu aplicación. ;)

+0

Parece una secuencia de comandos realmente buena, pero lo mejor que puedo decir es que no funciona en IE8, lo que es un problema para mí (en varios niveles). Cuando voy a http://robertwhurst.github.com/KeyboardJS/ con IE8 solo dice "se requiere JS". –

+0

La demostración puede no funcionar en IE pero la biblioteca debería. Hizo un par de construcciones atrás. ¿Probaste la biblioteca en sí? –

+0

No lo hice. Voy a darle una oportunidad. ¿Hay algún ajuste que demuestre que la demo puede manejar todos los navegadores? Me encantaría bifurcar y ajustar y enviar una solicitud de extracción en la página de demostración. –

29

Simplemente otra para tirar la mezcla. Recientemente lancé una llamada Mousetrap. Se puede extraer de los ejemplos en http://craig.is/killing/mice

+0

¡Gracias por compartirlo! –

+0

Es muy fácil de implementar y funciona como un encanto. ¿Cómo es la licencia para usarlo en proyectos comerciales? –

+2

Utiliza la licencia de Apache 2.0. – Craig

2

Por lo que he visto Ratonera es la única biblioteca que te permite especificar secuencias de teclas en lugar de combinaciones. Esto fue muy útil para mi aplicación.

2

KEYPRESS se dedica a la entrada de juego y es compatible con cualquier tecla como modificador, entre otras características. También es pre-packaged for Meteor.

Cuestiones relacionadas