我用 jQuery 制作了一个测验脚本,其中包含一些基于真/假的问题。每个问题有 2 个选择。如果您为问题 1 选择选项 1 的正确答案,它会自动选择选项 2 的错误答案(横向来看,这是合乎逻辑的 - 您不能对单个问题回答 2 次)。
使用我的脚本,我遇到了一个问题,说起来容易,但编码起来更困难:如果我点击问题 1 的正确答案两次,我的分数会增加 2 倍。如果我为同一个问题选择另一个答案(在这种情况下选择 1 为 False),则会出现同样的问题。我可以选择所有答案,但这不合逻辑……</p>
我搜索以“阻止”每个问题的“单击”选项,但我不知道如何。我玩过 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/
如果你有一个想法......提前谢谢你!