Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery中触发多个按键保持事件的方法_Jquery_Keyboard - Fatal编程技术网

在jQuery中触发多个按键保持事件的方法

在jQuery中触发多个按键保持事件的方法,jquery,keyboard,Jquery,Keyboard,正在寻找一种使用jQuery模拟多个按键的方法。例如ALT+F1(按住ALT键并点击F1) 由于以下原因,我成功模拟了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").trigg

正在寻找一种使用jQuery模拟多个按键的方法。例如ALT+F1(按住ALT键并点击F1)

由于以下原因,我成功模拟了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);
        });
});

使用修改器键
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);
});
演示:

  • 您不能直接模拟按键事件,只能触发绑定到它们的javascript处理程序。因此,简单地写一个函数,它封装了你想要按键的功能,让按键操作程序调用这个函数,并通过简单调用相同的函数来模拟其他地方的按键。
  • 如果您确实必须模拟ALT-F1和类似功能,则需要在
    keypress
    事件中设置其他属性(例如
    altKey
    metaKey
    ),和/或按下修改键的第一个触发器
    keydown
    事件(在JQuery/firefox中,按ALT键会给我一个
    keydown
    事件,其中
    e.which==18
    )。在一天结束时,您只需要创建处理程序响应的相同事件

  • 看看这篇文章。希望它能帮上忙。快速而简单