设置默认"反应时间"间隔不破jquery

时间:2014-05-05 09:06:28

标签: javascript jquery timing

我坚持这个,希望有人能帮助我。

脚本选择一个单词并记录单词外观和按键之间的经过时间(反应时间)。我的想法是有一个功能可以选择单词,将其设置为间隔,并通过按键将此间隔打破。属性"刺激"和"键入"是进一步使用,如果我不止一次选择它,我就会遇到问题。

这是小提琴:Fiddle of my problem

然而,它不能正常工作。默认反应时间(2000ms),只应在没有按键时记录。但就像现在一样,每次记录它。

Js代码:

var teststim = [{
    stim: "A",
    type: "letter"
}, {
    stim: "B",
    type: "letter"
}, {
    stim: "1",
    type: "integer"
}, {
    stim: "2",
    type: "integer"
}];
var RT = [];
var Type = [];
var Stim = [];
var displayword = function () {
    stuff = teststim[Math.floor((Math.random() * teststim.length))];
    $("#present").fadeOut(1000, function () {
        $("#present").text(stuff.stim).fadeIn();
        t1 = (new Date()).getTime();
    });
    reac = 2000;
};
timing = setInterval(displayword, 2000);
$(document).keypress(function (e) {
    clearInterval(timing);
    var t2 = (new Date()).getTime();
    reac = t2 - t1;
    t1 = t2;
    timing = setInterval(displayword, 2000);
});

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你的错误就在这里:

    reac = 2000; RT.push(reac); $("#RT").val(RT);

只要您输入要输入的字词,就会按下并显示反应时间。

Here is your fiddle fixed

关键是首先显示单词,然后开始计数,而不是同时进行计数。

顺便说一下,在错误的地方重置t1仍然有一点问题,所以如果你在fadeOut之前点击按键,但是在默认的反应时间被触发后,你会得到像“2200”这样的结果。

您可以修改它,例如,将其置于fadeOut之外:fiddle

每次按键时也要更改它,您可以像下面那样进行修改:fiddle