2016-02-11 29 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被按下。 –