按住Shift键时,我无法获得某些数字键盘键的正确代码。仅当数字锁定键打开时,数字键盘上的数字键和point/del键才会发生这种情况。
$('body').keyup(function (e) {
alert('key code ' + e.keyCode + ' ewhich: ' + e.which);
});打开num-lock:
Shift + numberPad1输出代码16,对于键盘上的所有数字键和point/del键也是如此。
对此有什么解释吗?
使用CHROME
发布于 2020-10-21 19:25:33
在Windows上,Shift+Numpad(0-9)具有不同的功能,因为Shift键暂时覆盖了'Numlock=ON‘状态。例如,Shift+Numpad1将注册为"End“并释放Shift键。这让我头疼了两年半,因为我一直在尝试使用我在Mac上使用的应用程序的快捷键,而在Windows上使用相同的应用程序时,我也会使用相同的快捷键。
发布于 2015-01-13 01:40:27
当你按上最后一个键时,KeyUp事件将会被触发,这意味着当你按下shift+numpad1时,shift ket会在最后一个键上,这就是为什么你会得到16个代码。
使用Keydown事件可以给出准确的结果。你想跟踪shift +键的代码,那么你必须分别使用shift键
Exp-
函数$(文档).ready(
(){
$("body").keydown(function (e) {console.log(‘键码’+ e.keyCode +‘ewhich:’+ e.which);});});
发布于 2015-01-13 01:55:01
我在这里测试。在这种情况下,可能是在keyup上传递了两次,一次是你想要的键,另一次是shift。试着忽略代码16,它会工作得很好。
$('body').keyup(function (e) {
if(!e.keyCode == 16)
console.log('key code ' + e.keyCode + ' shiftKey' + e.shiftKey);
});或者尝试使用按键
$('body').keypress(function (e) {
console.log('key code ' + e.keyCode + ' shiftKey' + e.shiftKey);
});https://stackoverflow.com/questions/27905705
复制相似问题