我试图做这样的代码:jQuery的检查一下左Ctrl +左Shift和向左CTRL +右移
$(input).keyup(function (e)
{
alert(e.shiftKey);
});
但每次我写的节目“假”字,我该怎么办呢?
我试图做这样的代码:jQuery的检查一下左Ctrl +左Shift和向左CTRL +右移
$(input).keyup(function (e)
{
alert(e.shiftKey);
});
但每次我写的节目“假”字,我该怎么办呢?
你的问题是使用keyup()
。到事件发生时,换档键被释放并且不是更加活跃。尝试使用keydown()
或keypress()
。
尝试
$("input").keydown(function (e)
{
if(e.shiftKey && e.ctrlKey){ alert("shift + crtl Pressed");}
});
这工作得很好
它可以工作,但我不想要ALT,我想按CTRL。 – user1123379 2012-02-14 14:00:18
我编辑了我的答案 – 2012-02-15 03:32:06
,而这两个键是向下后续将被触发。
$(input).keydown(function (e) {
if (e.shiftKey && e.ctrlKey) {
// This code would run if both the control and shift are down.
}
});
但是,它将继续被触发,只要他们通过按住输入框中的两个键,查看jQuery example。
我认为jQuery的.keypress()将能够让你知道,当他们被按下,而不是刚刚举行,但现在看来,它只能被调用的字符键a-z, 0-1, ?!>~#
等
它不起作用:if(e.shiftKey && e.ctrlKey) – user1123379 2012-02-14 13:59:56
@ user1123379:它完美地工作。请参阅:http:// jsfiddl e.net/bRtZH/2/ – KillerX 2012-02-14 14:13:22
@KillerX,你的jsfiddle使用'alt'而不是'shift'和'ctrl'。 – 2012-02-14 14:34:33
可悲的是,这是不可能的事件API - 两个Shift键都返回keyCode 16,两个Ctrl键都返回17 - 它们无法区分!
很抱歉的坏消息:(
我不知道什么挺你问,如果你问左右修饰键(Shift,Ctrl,ALT等)之间的区分那么它的通常不可能,见http://stackoverflow.com/a/8562791/96100 – 2012-02-14 12:38:51
我想这样做代码:if(left shift + left alt){...} – user1123379 2012-02-14 12:47:29
在哪个事件中?是否有其他键被按下?正如我刚才提到的,你一般不能区分左右移位或替换 – 2012-02-14 12:53:14