javascript - 在函数中重复循环 if/else 语句

标签 javascript jquery

我在 onclick 函数中重复循环 if/else 语句时遇到问题。在这款游戏中,你必须判断一个单词是否有效,然后继续判断,直到答错一个单词为止。

但是发生的情况是代码通过 if/else 分支的次数与您所做的问题相同。所以第一个问题一次,第二个问题两次,依此类推。因此,在第五个问题上,您将看到 5 个警报框,并且您的分数将增加 5,而不是 1。

总共有相当长的代码,否则它可以工作(我还没有完成高分位)。我把其中的一小部分放在我认为问题所在的地方。

完整内容请参见 http://www.absp.org.uk/test/study3lw.shtml

function quiz(){

...

    $('#true').on('click', function(){
        ...
        if (valid === true){          // ie got it right
            score++;
            alert(score);
            ...
        } else {                      // got it wrong
            ...
            score = 0;
            $('#word').append("*");
            alert("Game Over!");
        }
    });

    $('#false').on('click', function(){
        ...
        if (valid === false){         // ie got it right
            score++;
            alert(score);
            ...
        } else {                      // got it wrong
            score = 0;
            alert("Game Over!");
            ...
        }
    });

}


$('#start').on('click', function (){  // calls the above for each question
    ...
    quiz();
});

最佳答案

看起来您正在为每个问题创建一个新的单击事件,因此到第五个问题时,您的按钮就有了五个事件监听器。我相信 jQuery 有 .one() ,它会在事件触发后取消注册该事件。尝试使用 .one() 而不是 .on()

http://api.jquery.com/one/

关于javascript - 在函数中重复循环 if/else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44955710/

相关文章:

javascript - 如何为 HTML 中表格的 <th> 元素提供工具提示

Jquery 移动面板固定位置不起作用

javascript - 谁能解释这段 Javascript 代码?

javascript - 多次ajax调用后页面加载图像

asp.net - jQuery $(document).ready() 未触发

javascript - 谷歌地图 vs jquery;在 jsfiddle 中工作,在服务器上停止工作

php - 如何在下拉菜单中的子菜单中鼠标悬停时保持父菜单悬停

javascript - 尝试使用 ExternalInterface 隐藏和显示 Flash 视频播放器

javascript - 将数据添加到垂直滚动文档时,如何保持前面的部分可见?

javascript - 样式切换器帮助