我試圖做這樣的代碼: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