我试着做这个代码:
$(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");}
});
这很好