2017-12-15 20 views
0

キーが押されたときに通知を受け、解除されるまで通知されません。これは可能ですか?長いキーを押したDOMキーダウンイベント

キーを押したままにすると、​​をリッスンすると、onkeydownコールバックが繰り返し発生します。

答えて

2

フラグを設定して、キーアップ時にリセットすることができます。

let isPressed = false; 
 

 
document.addEventListener('keydown',() => { 
 
    if (!isPressed) { 
 
    isPressed = true; 
 
    onDown(); 
 
    } 
 
}) 
 

 
document.addEventListener('keyup',() => { 
 
    isPressed = false; 
 
    console.log('Up.') 
 
}) 
 

 
function onDown() { 
 
    console.log('Pressed') 
 
} 
 

1

キーとそれが既に押されているかどうかのマッピングがあるキーダウン機能をお勧めします。マッピングが既に押されているかどうかを確認してください。

キーアップでは、マッピングからキーを削除します。

関連する問題