Answers:
您可以从事件属性中轻松检测出shift键,alt键和控制键。
$("button").click(function(evt) {
if (evt.ctrlKey)
alert('Ctrl down');
if (evt.altKey)
alert('Alt down');
// ...
});
有关更多属性,请参见quirksmode。如果要检测其他键,请参阅cletus的答案。
if (e.metaKey) alert('Command down')
。这是一篇关于JS中关键事件的好文章unixpapa.com/js/key.html
您需要使用keydown()
和分别跟踪键状态keyup()
:
var ctrlPressed = false;
$(window).keydown(function(evt) {
if (evt.which == 17) { // ctrl
ctrlPressed = true;
}
}).keyup(function(evt) {
if (evt.which == 17) { // ctrl
ctrlPressed = false;
}
});
请参阅按键代码列表。现在您可以检查:
$("button").click(function() {
if (ctrlPressed) {
// do something
} else {
// do something else
}
});
我可以单独使用它
<a href="" onclick="return Show(event)"></a>
function Show(event) {
if (event.ctrlKey) {
alert('Ctrl down');
}
}
在不窃取@Arun Prasad的风头的情况下,这是我重新编写的纯JS代码段,以停止默认操作,否则,如果按下CTL + click,将打开一个新窗口。
function Show(event)
{
if (event.ctrlKey)
{
alert('Ctrl held down which clicked');
}
else
{
alert('Ctrl NOT pressed');
}
return false
}
<p>Hold down CTL on the link to get a different message</p>
<a href="" onclick="return Show(event)">click me</a>