我有一个调用JavaScript函数的锚标记。
使用或不使用JQuery时,如何确定在单击链接时是否按下了shift键?
以下代码不起作用,因为只有在按下"real key“(而不是shift键)时才会触发keypress。(我希望如果只按下shift键,它就会触发。)
var shifted = false;
$(function() {
$(document).keypress(function(e) {
shifted = e.shiftKey;
alert('shiftkey='+e.shiftkey);
});
$(document).keyup(function(e) {
shifted = false;
});
}
...
function myfunction() {
//shift is always false b/c keypress not fired above
}
发布于 2010-09-24 02:09:38
$(document).on('keyup keydown', function(e){shifted = e.shiftKey} );
发布于 2010-09-24 02:21:19
下面是JavaScript中每个击键的按键代码。您可以使用它来检测用户是否按下了Shift键。
backspace 8
tab 9
enter 13
shift 16
ctrl 17
alt 18
pause/break 19
caps lock 20
escape 27
page up 33
page down 34
end 35
home 36
left arrow 37
up arrow 38
right arrow 39
down arrow 40
insert 45
delete 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a 65
b 66
c 67
d 68
e 69
f 70
g 71
h 72
i 73
j 74
k 75
l 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
u 85
v 86
w 87
x 88
y 89
z 90
left window key 91
right window key 92
select key 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103
numpad 8 104
numpad 9 105
multiply 106
add 107
subtract 109
decimal point 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
num lock 144
scroll lock 145
semi-colon 186
equal sign 187
comma 188
dash 189
period 190
forward slash 191
grave accent 192
open bracket 219
back slash 220
close braket 221
single quote 222
并非所有浏览器都能很好地处理按键事件,因此请使用key up或key down事件,如下所示:
$(document).keydown(function (e) {
if (e.keyCode == 16) {
alert(e.which + " or Shift was pressed");
}
});
发布于 2010-09-24 01:54:51
对于鼠标事件,我知道在Firefox中,至少事件对象上的"shiftKey“属性会告诉你shift键是否按下了。它在MSDN上有文档记录,但是我从来没有尝试过,所以我不记得IE做得对不对。
因此,您应该能够在“单击”处理程序中检查事件对象上的"shiftKey“。
https://stackoverflow.com/questions/3781142
复制相似问题