2012-04-09 47 views
9

尋找一種使用jQuery來模擬多按鍵的方法。例如ALT + F1(按住Alt並按F1)。在jQuery中觸發多個按鍵和按住事件的方式

我已經成功地模擬了F1按鍵感謝: Definitive way to trigger keypress events with jQuery

尋找這樣的事情:

$(".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 – 2012-04-09 22:29:31

回答

18

隨着修飾鍵altctrlshift,您可以使用事件修改器專門爲他們:

$(".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 – 2017-03-07 09:57:01

2
  1. 你不能直接模擬按鍵事件,你只能觸發綁定到它們的javascript處理程序。因此,請考慮簡單地編寫一個函數,它封裝您希望按鍵執行的操作,讓按鍵處理程序調用該函數,並通過簡單地調用該函數在其他位置「模擬」按鍵。
  2. 如果你真的必須模擬ALT-F1和類似的,你需要設置在keypress事件的其他屬性(如altKeymetaKey),和/或修改鍵的按下第一個觸發​​事件(在JQuery中/火狐,按ALT給我一個​​事件與e.which == 18。)。在一天結束時,您只需創建處理程序響應的相同事件即可。
+0

很好看的,先生。 – 2016-08-31 19:02:37