2012-04-07 209 views
5

是否有可能有键盘事件监听器canvas.addEventListener('onkeydown', ev_keydown, false);就像我们的鼠标事件监听器键盘事件监听器在JavaScript

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

。 如果不是,那么替代品是什么?

回答

2

jQuery提供绑定事件监听到DOMElements

一个简单的方法,也有事件监听键盘事件这里有一些链接

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

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

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

你可以将它们绑定到窗口和这个应该做你想要

,你也可以用你自己的方法,以兼容的方式

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

这也应该让你绑定所提到的事件类型

+0

我们可以不使用Jquery吗?在这种情况下,我只能使用Javascript。 – james 2012-04-07 18:44:51

+3

在问题中没有提到jQuery,为什么强制实现特定的解决方案? – 2012-04-07 18:45:37

+0

我还添加了我用来绑定没有jQuery的事件的方法 - 希望它对你有用 – alex 2012-04-07 18:50:12

2

检查的事件绑定在一个跨浏览器是什么如果这对你有用。您的示例行具有仅用于IE方法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);