2016-02-11 48 views
1

例如結合所產生的特殊字符,如何可以檢測@字符(使用keyupkeypress),其時產生我同時使用shift + 2鍵?檢測由變速鍵和其他一些關鍵

我試着用which檢測如果兩個shift2輸入了一個接一個,但我怎麼能檢測是否shift保持壓制和然後2被壓?

注:我不只是想,如果shift2鍵被按下一前一後,如果在同一時間被壓shift2鍵生成@檢測。

+1

可能的複製另一個字符'click'事件上的Ctrl/Shift/Alt鍵](http://stackoverflow.com/questions/2847135/check-ctrl-shift-alt-keys-on-click-event) – Andrey

+1

keypress事件應該給你代碼@字符。如果沒有,只需檢查2鍵的鍵碼和.shiftKey屬性。 – nnnnnn

+0

不,它給了我'2'和'shift'鍵的代碼,但不是'@'。 –

回答

1

我面臨這個問題,我的解決辦法是這樣的: 密鑰號碼只是檢測其中的關鍵是pressed..May b不是這是對[檢查的是

$.ctrl = function(key, callback, args) { 
 
    $(document).bind('keydown', function(e) { 
 
    if (!args) args = []; // IE barks when args is null 
 
    if (e.shiftKey && e.keyCode == key.charCodeAt(0)) { 
 
     e.preventDefault(); 
 
     callback.apply(this, args); 
 
     return false; 
 
    } 
 
    }); 
 
} 
 
$.ctrl('2', function() { 
 
    alert('@'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

總結JNF提到的答案:(e.shiftKey && e.which === 50)將返回true如果shift和2被按下。 –