我一直想知道是否有一种简单的方法可以检测用户是否在一秒钟内按键盘上的同一个字符两次。我已经编写了一些可以正常工作但不可靠的代码。
var escapeCount = 0;
function reset() {
escapeCount = 0;
setTimeout('reset();', 1000);
}
window.onload = function() {
reset();
};
document.onkeyup = function(e) {
if (!e) var e = window.event;
var code = e.keyCode ? e.keyCode : e.which;
if (code == 27) escapeCount +=1;
if (escapeCount == 2) {
// stuff on second escape
}
};
有更好的方法吗?谢谢
最佳答案
在按下最后一个字符后 1 秒后重置是有意义的。示例:
var lastChar = -1;
document.onkeyup = function(e) {
if (!e) var e = window.event;
var code = e.keyCode ? e.keyCode : e.which;
if (lastChar == code) {
// Same key was pressed twice in a row within 1 second.
} else {
lastChar = code;
setTimeout(function() {lastChar = -1;}, 1000);
}
};
关于第二次按键时的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114279/