6

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

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

在 JavaScript 中。如果不是,那么替代方案是什么?

4

2 回答 2

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);
于 2012-04-07T18:48:09.953 回答
1

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);
   }
}

这也应该允许您绑定提到的事件类型

于 2012-04-07T18:39:36.183 回答