真偽に基づいたいくつかの質問を含むクイズ スクリプトを jQuery で作成します。各質問には 2 つの選択肢があります。質問 1 に対して選択肢 1 の正しい答えを選択すると、自動的に選択肢 2 の間違った答えが選択されます (逆に言えば、これは論理的です。1 つの質問に 2 回答えることはできません)。
私のスクリプトでは、問題があります。言うのは簡単ですが、コーディングするのはより困難です。質問 1 の正解を 2 回クリックすると、スコアが 2 倍になります。同じ質問に対して別の回答 (この場合は選択肢 1 に対して False) を選択すると、同じ問題が発生します。すべての答えを選択できますが、これは論理的ではありません…</p>
質問ごとに 1 回の「クリック」で選択肢を「ブロック」するように検索していますが、その方法がわかりません。vars で遊んでみましたが、説得力がありませんでした。
quizz = function(){
vars = {
score : 0,
scroll : 1
};
// Scroll to the next question
q = {
next: function(which){
if (vars.scroll === 1){
$d.scrollTo(which, 500);
}
},
// If good answer is clicked, increase the score
score: function(which){
if (which.hasClass("t")){
vars.score++;
}
}
};
};
// Init the quizz
quizz();
// On questions click
$(".quizz .r").on("click", function(e){
var $t = $(this),
$q = $t.closest(".q"),
q_ans = $t.attr("class").split("r ")[1],
q_id = $q.attr("id"),
ac = "active";
$t.addClass(ac);
$q.find("."+ q_ans).addClass(ac);
q.score($t);
if (q_id == "q7"){
e.preventDefault();
} else {
q.next($q.next());
}
$(".result p").html("Score : "+ vars.score);
e.preventDefault();
});
ここに私の試みがあります: http://jsfiddle.net/uZQbS/
アイデアがあれば… よろしくお願いします!