2012-04-09 16 views
9

jQueryを使用して複数のキー押しをシミュレートする方法を探しています。たとえば、Alt + F1(Altキーを押しながらF1キーを押す)などです。このような何かを探してい Definitive way to trigger keypress events with jQueryjQueryで複数のキー押しとイベントをトリガーする方法

::私は感謝にF1のキーの押下をシミュレートするために管理してきました

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.keyCode = 18; // ALT key pressed 
    // while ALT key is pressed, hit the F1 Key 
    $("input").trigger(e, function(){ 
     var e = jQuery.Event("keydown"); 
     e.which = 112; // F1 key 
     $("input").trigger(e); 
     }); 
}); 
+1

この投稿を参照してください。それが役に立てば幸い。 http://stackoverflow.com/questions/4604057/jquery-keypress-ctrlc-or-some-combo-like-that –

答えて

18
修飾キー alt

ctrl、およびshift、あなたがイベントを使用することができます具体的にはそれらの修飾語句:

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.which = 112;  // # F1 code value 
    e.altKey = true;  // Alt key pressed 
    $("input").trigger(e); 
}); 

デモ:http://jsfiddle.net/jtbowden/2kcrg/

+0

迅速かつtrikly –

2
  1. あなたは完全にあなたがそれらだけにバインドされたjavascriptのハンドラをトリガすることができ、キープレスイベントをシミュレートすることはできません。だから、あなたのkeypressにしたいものをカプセル化し、その関数をkeypressハンドラが呼び出すようにして、単に同じ関数を呼び出すだけで他の場所でkeypressをシミュレートする関数を書くことを考えてみましょう。あなたが本当にALT-F1と同様のをシミュレートする必要がある場合
  2. は、あなたがkeypressイベント内の他の特性(例えばaltKeyまたはmetaKey)、および/またはjQueryの/ Firefoxで修飾キーの押しのための最初のトリガ​​イベントを(設定する必要がありますALTを押すと​​というイベントがe.which == 18と表示されます)。一日の終わりに、ハンドラーが応答するのと同じイベントを作成するだけで済みます。
+0

良い読み取り先生。 –

関連する問題