2012-04-07 151 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);