2017-02-07 14 views
0

jQueryでは、キーを押したときにアクションをトリガするために 'window.onkeydown'を使用できます。しかし、「onkeydown」は、引き続きトリガーに割り当てた機能を「継続的に」実行します。割り当てられた関数を1回だけ実行できる方法はありますか?ありがとうございました!限り、私はCtrlキー(keyCodeが17)、jQueryの連続#内部H2要素を作成しますを押して、この場合jQueryトリガアクションキーダウン時に1回のみ

window.onkeydown = function(e){ 
    if (e.keyCode == 17){ 
    jQuery('<h2/>').appendTo($('#myDiv')) 
    } 
} 

:キーダウンオン

は、私のような何かをするとき、特別に迷惑ですmyDiv、そして私が望む結果はちょうど1 h2です。

答えて

1

jQuery one()を使用して、イベントを1回だけ実行させることができます。それが発生した後、イベントが未結合である:

.one()メソッドは、 所与の要素とイベントタイプ用のハンドラがその最初の呼び出しの後、未結合であることを除いて、)(.onと同じです。

jQuery(window).one('keydown', function(e) { 
    if (e.keyCode == 17){ 
     jQuery('<h2/>').appendTo($('#myDiv')) 
     } 
}); 

あなたはそれを実行した後に拘束されることに継続するイベントが必要な場合は、おそらく代わりに実行を制限するdebounceのようなものを見て必要があると思います。

+0

こんにちは、別のパスで問題を解決しました。しかし、あなたの答えは大変ありがとうございます。良い一日を過ごしてください :) –

関連する問題