keydown和key up之间的时间

时间:2012-02-04 19:15:00

标签: javascript html time

所以我试图找到用户按下T键和释放键之间的时间。我到处寻找,但我还没有找到一个有效的解决方案。各种解决方案返回数字,但不是正确的数字。这是我的javascript:

var ky;
var start;
var end;

function keydown(e){
    ky = e.keyCode;
    if(ky==84){
        start = +new Date();
    }
}

function keyup(e){
    ky = e.keyCode;
    if(ky==84){
        end = +new Date();
        alert(end - start);
    }
}

在body标签中我有onkeydown =“keydown(event)”onkeyup =“keyup(event)”

而不是返回keydown和keyup之间的毫秒,而是给我一个大约20到200之间的数字。我不能真正给你整个代码,因为它包含很多其他不属于它的代码keyup和keydown

1 个答案:

答案 0 :(得分:1)

我不确切地知道你要做什么,但如果按住按键的时间长于自动重复时间(通常约为500毫秒),则自动重复可能会弄乱你的时间。您可以使用以下代码解决自动重复:

var start = 0;
function processKeyDown(e) {
    if (!start) {
        start = (new Date()).getTime();
    }
}

function processKeyUp(e) {
    var delta = (new Date()).getTime() - start;
    document.getElementById("time").innerHTML = delta + " ms";
    start = 0;
}

您可以在此处查看:http://jsfiddle.net/jfriend00/AveZP/