这个帖子几乎解决了我的问题:Can jQuery .keypress() detect more than one key at the same time?
但是,通过提供的代码。如果您按 CTRL+C 复制一些文本,然后松开,数字将保持为“1”,直到您分别按下 CTRL 和 R。
代码:
var keys_count = 0;
var keys = {};
$(document).keydown(function (e) {
if(keys[e.which]) return;
keys_count = keys_count + 1;
keys[e.which] = true;
printKeys();
});
$(document).keyup(function (e) {
keys_count = keys_count - 1;
delete keys[e.which];
printKeys();
});
function printKeys() {
$('#out').html(keys_count);
}
在这里试试我的例子:http://jsfiddle.net/gFcuU/524/
有什么办法可以避免这种情况吗?
我只是想跟踪,当前用户是否只是简单地输入一些字母,或者执行一个命令,即 CTRL + C、CTRL + A 等。但也许有一个更简单的方法,我到目前为止找到了?
最佳答案
最简单的事情是测试 event.ctrlKey
:
$(document).keydown(function (e) {
if (e.ctrlKey) {
$('#ctrl').text("true");
} else {
$('#ctrl').text("false");
}
});
您也可以将其与普通键的测试结合起来。例如:
if (e.ctrlKey && e.which == 67) {
关于javascript - 跟踪当前按键的实际数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19892164/