【问题标题】:create counter for variable that is missed为丢失的变量创建计数器
【发布时间】:2016-02-28 10:45:55
【问题描述】:

有没有办法为遗漏的变量创建一个计数器? 我正在创建 3 个计数器 - 正确、错误和未命中。 我为 2 个数字设置了一个时间间隔。 如果它们匹配并且我单击按钮,那就对了。 如果他们不匹配,我点击按钮,这是错误的 但如果我不点击并且 2 数字随时间间隔而变化。它被认为是错过了。

但是我如何增加错过的计数器?

我的html如下:

<td>Correct:</td>
<td id="correctScore"><span>0<span></td>
<td><span>Wrong<span></td>
<td id="wrongScore"><span>0<span></td>
<td><span>Missed<span></td>
<td id="missedScore"><span>0<span></td>

我的脚本如下:

var num1;
var num2;
var timerID;
var correctCount;
var WrongCount;
var missedCount;

correctCount = 0;
wrongCount = 0;
missedCount = 0;

timerID = setInterval(function() {
num1=Math.floor((Math.random()*3)+1);
document.getElementById("number1").innerHTML = num1;
}, 2 * 1000);

timerID = setInterval(function() {
num2=Math.floor((Math.random()*3)+1);
document.getElementById("number2").innerHTML = num2;
$('.numberStyle').css("font-size", "100px");
}, 2 * 1000);

$("input").click(function() { 

if (num1 == num2) {
correctCount++;
document.getElementById("correctScore").innerHTML = correctCount;

}   else if (num1 != num2) {
wrongCount ++;
document.getElementById("wrongScore").innerHTML = wrongCount;

}   else  {
missedCount ++;
document.getElementById("missedScore").innerHTML = missedCount;

任何帮助表示赞赏,非常感谢提前。 (:

【问题讨论】:

    标签: javascript jquery variables counter


    【解决方案1】:

    我看不出有什么理由可以解释为什么您为每个数字使用 2 个计时器。您可以像这样在计时器中生成两个数字:

    timerID = setInterval(function() {
        num1=Math.floor((Math.random()*3)+1);
        num2=Math.floor((Math.random()*3)+1);
    
       document.getElementById("number1").innerHTML = num1;
       document.getElementById("number2").innerHTML = num2;
    }, 2 * 1000);
    

    对于错过的计数器,您可以定义一个变量来检查用户是否回答,并在计时器中通过查看该变量来增加missedCount。

    https://jsfiddle.net/rev86ta2/

    【讨论】:

    • 嘿@İbrahim Duran,感谢您在这种情况下提供的有用建议。如果我继续点击,按钮计数器会增加不止一次。我怎样才能让它只点击一次。我尝试了 .on('click', function() 和 .off('click', function() 但如果我这样做了,那么按钮只能运行一次......有什么想法可以解决这个问题吗?
    • 您可以通过在 click 函数中检查 answer 变量来防止这种情况。见:jsfiddle.net/rev86ta2/1
    • 嗨@İbrahim Duran,感谢您的及时回复。它完美地工作。但是,我不太明白这一点。请原谅我的菜鸟无知。这是否意味着“ if(!answered) { ”现在是 2 秒间隔的一部分?或者为什么这个班轮有助于实现一键点击?非常感谢提前
    • 嘿@İbrahim Duran,非常感谢您的解释,我会多练习并掌握它。谢谢。
    猜你喜欢
    • 2017-08-30
    • 2014-06-08
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2023-03-21
    相关资源
    最近更新 更多