在我的程序结束时,我在evalSeqResults()中增加'level'然后显示结果(虽然我稍后会在此方法中添加不同的要求)
当resultStr出现在屏幕上时,它具有正确的级别,但是几秒后,“级别”再次增加,依赖它的其他2个变量也是如此
有谁知道这是为什么?
以下是一些代码:http://pastebin.com/RuKLadmK
function endSequence() {
evalSeqResults();
displaySeqResults();
}
function evalSeqResults() {
level++;
}
function displaySeqResults() {
var resultStr = "You scored " + correctCount + " out of " + (NUM_OF_STACKS + 20) +
"<br/>";
resultStr += "Your next level is: " + level + "<br/>";
resultStr += "There will be " + LEVELS[level].numDecks + " decks and you are looking for " + LEVELS[level].nBack + " back. <br/>";
resultStr += "Press START to continue";
$('#resultspara').html(resultStr);
$('#resultspara').show(0);
}
答案 0 :(得分:1)
您的level
变量无处定义。但是,我在您的代码中发现了一个小问题:endSequence
被调用:
function doNext() {
if (cardNum < maxCard) {
cardNum++;
fixate();
}
if (cardNum == maxCard) {
endSequence();
}
}
假设cardNum
为4
而maxCard
为5
。第一次调用doNext
时,第一个条件为真。 cardNum
增加到5
并调用fixate
。之后,第二个条件也为真(5==5
) - endSequence
被调用。第二次调用doNext
时,只有第二个条件匹配并再次执行endSequence
。
我想你想要:
function doNext() {
if (cardNum < maxCard) {
cardNum++;
fixate();
} else if (cardNum == maxCard) {
// ^^^^
endSequence();
}
}