私は、キーが押されているときだけイベントをトリガーする方法を見つけようとしています。1つのkeyPressイベントに対して1つのイベントをトリガーします
if (bool){
//do thing just one time
}
私は、キーが押されているときだけイベントをトリガーする方法を見つけようとしています。1つのkeyPressイベントに対して1つのイベントをトリガーします
if (bool){
//do thing just one time
}
使用代わりのkeypress
:handleEvents のsetTimeoutで
$(document).keypress(function(e) {
if(e.which == 102) {
bool = true;
}
});
、その後:だから私はこのような何かをやっています。
あなた年代順に、次の順序があります:あなたはシングルトンタイプのイベントを探しているなら(
$(document).keypress(()=> console.log('I am keypress'))
$(document).keydown(()=> console.log('I am keydown'))
$(document).keyup(()=> console.log('I am keyup'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Press any key</h1>
キーを押してキーダウンイベントハンドラは1回だけ実行されます)、jQuery関数.one()
を使用できます。イベントハンドラが一度実行されると、自動的にバインド解除されます。例:
$(document).one('keyup', function(event){
if (event.keycode === 102){
// code...
}
});
*ハンドラは関係なく、正しいキーが押されたかどうかのを介して、第1の実行をアンバインドされますので、キー押下タイプのイベントでこれを使用することは賢明では思われないことに注意してください。
ユーザーがキーを押した後にイベントハンドラを実行する必要があるように思えます。他のコメントと同様に、'keydown'
または'keyup'
イベントを使用することをお勧めします。
'keydown'または' keyup'イベントを使用します。 – Barmar