我已经完成了这段代码并接近我想要的东西,但缺少两个小细节。该功能测量两次事件之间经过的时间,并在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!");
}
});
});
答案 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 )
})