Javascript/jQuery/html と CSS を学ぶために動的クイズをしようとしています。戻るボタンを追加したので行き詰まりました。この戻るボタンを使用すると、ユーザーは最後の回答を確認して変更することもできます。最後の回答が正しく回答された場合は変更されますが、正しく回答されていないscore--;
場合はリセットされません。人々が無限のスコアを取得するのを避けるために、任意の値。私の本当の問題は、lastValue
変数を使用して最後にチェックしたラジオボタンを保存しているため、戻ったときに比較できますが、一度戻ってもうまく機能lastValue
し、更新されないため、動作が奇妙です。これは、値を比較するために使用しているコードです。
function backQuestion(){
if (number == 9){
$('#myForm').css('display', 'inline-block');
$('#question').css('display', 'block');
$('#next').css('display', 'inline-block');
$('#score').css('display', 'none');
}
if(number > 0){
number --;
addQuestionAndAnswers();
if (lastValue == allQuestions[number].answer){
score --;
console.log('your score after going back is: ' + score);
console.log('the last value is: ' + lastValue);
console.log('this is the value of number: ' + number);
}else{
//lastValue =
console.log('your score after going back is: ' + score);
console.log('the last value is: ' + lastValue);
console.log('this is the value of number: ' + number);
}
}
}
残りのコードと変数を確認できるように、js フィドルのデモも残しておきます。これを書いている間、応答の値を配列に保存することを考えただけで、応答されたすべての応答だけがその値を配列に保存でき、ボタンを押し戻すと、比較のためにその値を取得できます。回答が再度回答された場合は、その値を削除できます。これが複雑な方法かどうかはわかりません。誰かが私に教えてくれたり、簡単な方法を提案してくれたりしたら、私は感謝します!
js フィドル: http://jsfiddle.net/xtatanx/Wn8Qg/2/
js フィドルの結果全画面表示: http://jsfiddle.net/xtatanx/Wn8Qg/2/embedded/result/