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 に答える