javascript - 如何将函数放入 for 循环并等待用户输入

标签 javascript jquery

我正在尝试做一个简单的测验,其中两个术语以不同的语言显示(我在这里使用数字以避免混淆)。 50% 的时间项会匹配。对于条款是否匹配,用户可以选择是或否。问题以随机顺序显示,是否重复并不重要。

想法是这应该重复多次。

我似乎无法让循环工作,目前它运行并在开始时打印出所有问题。我希望它在用户点击时打印出一个新问题。

这是 jsfiddle 的链接:http://jsfiddle.net/sX8Rz/1/

代码如下:

$(document).ready(function () {
var score = 0;

var hiraganaWords1 = [
    ["1", "one"],
    ["2", "two"],
    ["3", "three"],
    ["4", "four"],
    ["5", "five"],
    ["6", "six"],
    ["7", "seven"],
    ["8", "eight"],
    ["9", "nine"],
    ["10", "ten"]
];


    function askQuestion() {
        var questionNumber = Math.floor((Math.random() * hiraganaWords1.length));
        var trueFalse = Math.round(Math.random());
        var wrongAnswer = Math.floor((Math.random() * hiraganaWords1.length));
        var correct = hiraganaWords1[questionNumber][0];
        var trueAnswer = hiraganaWords1[questionNumber][1];
        var incorrectAnswer = hiraganaWords1[wrongAnswer][1];

        if (trueFalse === 0) {
            $("#japanese").append(correct);
            $("#english").append(trueAnswer);
            var answer = "yes";
            $("#yes").click(function () {
                var guess = "yes";
                if (guess === answer) {
                    score++;
                    alert("well done your score is: " + score);

                } else {
                    score = 0;
                    alert("try again");
                }

            });
            $("#no").click(function () {
                var guess = "no";
                if (guess == answer) {
                    score++;
                    alert("well done your score is: " + score);
                    $("#japanese").html(" ");
                    $("#english").html(" ");
                } else {
                    score = 0;
                    alert("try again" );


                }
            })

        } else {
            $("#japanese").append(correct);
            $("#english").append(incorrectAnswer);
            var answer = "no";
            $("#yes").click(function () {
                var guess = "yes";
                if (guess == answer) {
                    score++;
                    alert("well done" + score);

                } else {
                    score = 0;
                    alert("try again" + score);
                }

            });
            $("#no").click(function () {
                var guess = "no"
                if (guess == answer) {
                    score++;
                    alert("well done" + score);
                } else {
                    score = 0;
                    alert("try again" + score);


                }
            })

        }



    }

 for(i=0;i<5;i++){
    askQuestion();
 }


});

在此先感谢您,对于菜鸟问题​​,我深表歉意,我只是在学习,非常感谢您的帮助。

干杯 安迪

最佳答案

你不能在 JavaScript 中等待(如果你可以,浏览器会阻止并且点击任何地方都不会产生任何效果)。

因此解决方案是在用户点击她的选择时提出下一个问题(在您显示上一个问题的结果之后)。

关于javascript - 如何将函数放入 for 循环并等待用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483755/

相关文章:

javascript - 我们如何将多个参数传递给 PageMethod 的 onSuccess 方法?

javascript - 如何处理 jquery 中的 AJAX 错误

javascript - Coffeescript - 为什么我的类的属性未定义 onclick?

javascript - 从 id 标签中获取数字

javascript - Uncaught Error : Actions must be plain objects

javascript - 删除具有相同文本值的重复 anchor ?

javascript - 将 tabindex 设置为 "last element"和 "penultimate element"- 可能吗?

javascript - Jquery的hoverIntent/hover函数支持触摸设备

javascript - 什么可能导致 MVC 应用程序从数据库中提取后不在 IE 中显示当前信息?

php - JavaScript : removing new line does not work