在jquery中重置经过的时间和setInterval?

时间:2014-03-20 21:12:40

标签: javascript jquery time reset

我已经完成了这段代码并接近我想要的东西,但缺少两个小细节。该功能测量两次事件之间经过的时间,并在3次运行后停止。

我想在每次按键事件后重置时间。在我的研究中,我发现了这个问题:Mesure a Reaction Time in ms on a JSP webpage但是它对重置没什么帮助。

此外,我想在没有按键的情况下每2秒自动更改div的文本,然后获取2000的经过时间。

这有可能吗?我尝试过setInterval但没有成功。

var t1;
var counter=0;
var teststim = ["AAA", "BBB", "CCC", "DDD"];

$(function(){
    t1 = (new Date()).getTime();
    $(document).keypress(function(e){
        var t2 = (new Date()).getTime();
        var reac = t2 - t1;
        counter++;
        if (e.keyCode == 97 || e.keyCode == 108) {
            $("#stimuli").text(teststim[Math.floor(Math.random() * teststim.length)]);
        };
        if (counter == 3) {
            confirm("It's over!");
        }
    });
});

2 个答案:

答案 0 :(得分:2)

在测量反应时间后,将t1设置为当前时间。

var reac = t2 - t1;
t1 = t2;

答案 1 :(得分:2)

这不会衡量反应时间,但它是setInterval / clearInterval的一个有效例子。

updateText = function(){
    $("body").append( $("<p></p>").html(Date()))
}
timer = setInterval( updateText, 2000 )
$(document).keypress(function(){
    clearInterval( timer)
         $("body").append( $("<p></p>").html("Keypress at " + Date() ))
    timer = setInterval( updateText, 2000 )

})

http://jsfiddle.net/KHaaL/