我正在尝试做一个简单的测验,其中两个术语以不同的语言显示(我在这里使用数字以避免混淆)。 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/