2015-02-11 74 views
1

我想捕获一个事件替代 + c或类似的东西。我的代码是 HTML如何捕获ALT + C按键

<input type="text" id="name"/> 

的JavaScript

$("#name").keydown(function(e) { 
    if(e.keyCode == 67 && e.keyCode == 18){alert(e.keyCode);} 
}); 

问题出在哪里?它是如何在Chrome浏览器上运行的&?

+0

我想你需要看看'e.altKey'和'e.ctrlKey'。尝试在这里的答案http://stackoverflow.com/questions/93695/best-cross-browser-method-to-capture-ctrls-with-jquery或http://stackoverflow.com/questions/4604057/jquery-keypress -ctrlc-or-some-combo-like-that – 2015-02-11 16:03:02

+0

我理解你的困惑,但是如果你考虑一下,'e.keyCode'不能同时是两个不同的值。所以如果你需要一次检查两个按键,你需要一个不同的机制。这就是'e.altKey'的用途。 – 2015-02-11 16:07:51

回答

2

您需要检查e.altKey代替:

if(e.altKey && e.keyCode == 67){alert(e.keyCode);} 
0

基本上,你正在检查两码为同一时间。事件(e)有多个值,你可以工作......包括altKey这是一个布尔值(true或false)...

尝试......看着e.altKeye.keyCode值。

$("#name").keydown(function(e) { 
    if(e.altKey && e.keyCode == 67) { 
     alert(e.keyCode); 
    } 
}); 

有了正确的jQuery版本,浏览器之间应该没有问题。

0
$(document).keydown(function(e) { 
//console.log(e.keyCode); If you want to check other keys code 
if(e.keyCode == 67 || e.keyCode == 18){ 
console.log("alt or c pressed"); 
} 
}); 

您可以解决此问题,以检查是否同时按下两个键。我要求你使用一个aux var设置为零,当keydown事件触发时增加他的值,当keyup时减少它。