2017-02-13 6 views

答えて

1

使用​​代わりの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>

0

キーを押してキーダウンイベントハンドラは1回だけ実行されます)、jQuery関数.one()を使用できます。イベントハンドラが一度実行されると、自動的にバインド解除されます。例:

$(document).one('keyup', function(event){ 
    if (event.keycode === 102){ 
    // code... 
    } 
}); 

*ハンドラは関係なく、正しいキーが押されたかどうかのを介して、第1の実行をアンバインドされますので、キー押下タイプのイベントでこれを使用することは賢明では思われないことに注意してください。

ユーザーがキーを押した後にイベントハンドラを実行する必要があるように思えます。他のコメントと同様に、'keydown'または'keyup'イベントを使用することをお勧めします。

関連する問題