jQuery检查是否单击左ctrl+left shift和左ctrl+right shift

jQuery check for clicking left ctrl + left shift and left ctrl + right shift

本文关键字:shift 和左 ctrl+right ctrl+left 检查 是否 单击 jQuery      更新时间:2023-09-26

我试着做这个代码:

$(input).keyup(function (e)
{
    alert(e.shiftKey);
});

但我写的每一个角色都显示出"虚假",我怎么能做到呢?

遗憾的是,这在API事件中是不可能的-两个shift键都返回keyCode16,两个ctrl键都返回17-它们无法区分!

很抱歉听到这个坏消息:(

您的问题是使用keyup()。事件触发时,换档键已释放,不再处于活动状态。尝试使用keydown()keypress()

当两个键都按下时,将触发以下操作:

$(input).keydown(function (e) {
    if (e.shiftKey && e.ctrlKey) {
        // This code would run if both the control and shift are down.
    }
});

然而,只要它们按下,它就会继续被触发,请参阅jQuery的例子,按住输入框中的两个键。

我原以为jQuery的.keypress()可以让你知道它们何时被按下,而不仅仅是被按住,但它似乎只在字符键a-z, 0-1, ?!>~#等上被调用。

尝试

$("input").keydown(function (e)
{
    if(e.shiftKey && e.ctrlKey){ alert("shift + crtl Pressed");}
});

这很好