2012-04-07 10 views
5

¿Es posible tener evento de teclado oyente canvas.addEventListener('onkeydown', ev_keydown, false); como el que tenemos detectores de eventos de ratónteclado procesador de eventos En JavaScript

canvas.removeEventListener('mousedown', ev_mousedown, false); 
canvas.addEventListener('mousedown', ev_mousedown, false); 

en JavaScript. Si no, ¿cuál sería la alternativa?

Respuesta

2

jQuery ofrece una forma sencilla de unir EventListeners a DOMElements

y también hay EventListeners para eventos de teclado aquí hay algunos enlaces

http://api.jquery.com/keydown/

http://api.jquery.com/keypress/

http://api.jquery.com/keyup/

se puede atarlos a la ventana y esto debe hacer lo que quiera

también puede utilizar su propio método para enlazar eventos en un cross-browser de manera compatible

function bindEvent(e, typ, handler) { 
    if(e.addEventListener) { 
     e.addEventListener(typ, handler, false); 
    }else{ 
     e.attachEvent('on'+typ, handler); 
    } 
} 

esto también debería permitir enlazar los mencionados tipos de eventos

+0

¿podemos hacerlo sin usar Jquery? Solo puedo usar Javascript en este contexto. – james

+3

jQuery no se menciona en la pregunta, ¿por qué forzar una solución específica para la implementación? –

+0

También agregué el método que uso para vincular eventos sin jQuery. Espero que funcione para usted – alex

2

Verificar si esto funciona para ti Su línea de muestra tenía un prefijo de on que solo se usa para el método IEs attachEvent.

function listener(elem, evnt, func) 
{ 
    if (elem.addEventListener) 
     elem.addEventListener(evnt,func,false); 
    else if (elem.attachEvent) // For IE 
     return elem.attachEvent("on" + evnt, func); 
} 

listener(document.getElementById('myCanvas'), 'keydown', ev_keydown); 
Cuestiones relacionadas