例如我有一个功能
Question.prototype.checkAnswer = function(answer1, answer2) {
if (answer1.innerHTML == this.correctAnswer) {
console.log("correct");
players1.moveCharacter = true;
pointAmount+= 1;
point.innerHTML = pointAmount;
} else {
console.log("nope")
}
}
它的答案是正确的id,总点数增加1点。但问题是,如果我不移动到数组中的下一个问题并且只是继续点击答案按钮,我会在我决定继续下一个问题之前继续获得我想要的分数。我怎么能解决这个问题,这样我才能回答这个问题,只得到一点。我相信我需要确保该函数只运行一次?
这可能很容易解决,但我是新手,无法想到任何事情。
答案 0 :(得分:5)
您可以使用简单标志,并在调用该函数后将其设置为true
。
function Question() {}
Question.prototype.checkAnswer = function(answer1, answer2) {
if(this.answerChecked)
return; // If answer was already checked, leave.
this.answerChecked = true;
// The rest of your code
console.log('Run');
}
const question = new Question();
question.checkAnswer('yes', 'no');
question.checkAnswer('again', 'no'); // This will do nothing
答案 1 :(得分:1)
您还可以在授予更多积分之前检查是否pointAmount > 0
。