Way to trigger multiple keypress and hold events in jQuery

后端 未结 2 1130
难免孤独
难免孤独 2020-12-03 15:10

Looking for a way to simulate a multiple keypress using jQuery. For example ALT+F1 (holding down alt and hitting F1).

I\'ve managed to simulate the F1 keypress thank

相关标签:
2条回答
  • 2020-12-03 15:41
    1. you can't outright simulate keypress events, you can only trigger javascript handlers bound to them. So consider simply writing a function that encapsulates what you want your keypress to do, having the keypress handler call that function, and "simulate" the keypress in other places by simply calling that same function.
    2. if you really must simulate ALT-F1 and similar, you need to set other properties in the keypress event (e.g. altKey or metaKey), and/or first trigger keydown event for the press of the modifier key (in JQuery/firefox, pressing ALT gives me a keydown event with e.which == 18.). At the end of the day you just need to create the same events that your handlers respond to.
    0 讨论(0)
  • 2020-12-03 15:42

    With the modifier keys alt, ctrl, and shift, you can use event modifiers specifically for them:

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

    Demo: http://jsfiddle.net/jtbowden/2kcrg/

    0 讨论(0)
提交回复
热议问题