在jQuery中触发多个按键和保持事件的方法
寻找一种使用jQuery模拟多键按键的方法。 例如ALT + F1(按住alt并按F1)。
我已经设法模拟F1按键,这要归功于: 使用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); }); });
使用修改键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/
- 你不能直接模拟按键事件,你只能触发绑定到它们的javascript处理程序。 因此,考虑简单地编写一个函数来封装你想要你的keypress做什么,让keypress处理程序调用该函数,并通过简单地调用相同的函数来“模拟”其他地方的按键。
- 如果你真的必须模拟ALT-F1和类似的,你需要在
keypress
事件中设置其他属性(例如altKey
或metaKey
),和/或首先触发keydown
事件以按下修饰键(在JQuery / firefox中,按下ALT给我一个keydown
事件与e.which == 18
)。 在一天结束时,您只需要创建处理程序响应的相同事件。