jQuery 测验和交叉答案

标签 jquery

我用 jQuery 制作了一个测验脚本,其中包含一些基于正确/错误的问题。每个问题有 2 个选择。如果您为问题 1 选择选项 1 的正确答案,它会自动选择选项 2 的错误答案(交叉地,这是合乎逻辑的 – 您不能对一个问题回答两次)。

在我的脚本中,我遇到了一个问题,说起来容易,但编码起来更困难:如果我点击问题 1 的正确答案两次,我的分数会增加 2 倍。如果我为同一问题选择另一个答案(在本例中选择 1 为 False),则会出现同样的问题。我可以选择所有答案,但这不合逻辑......

我搜索“阻止”每个问题的选择,只需“单击”一次,但我不知道如何操作。我玩过 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/

如果你有想法…… 预先感谢您!

最佳答案

这将防止正确答案多次增加分数:

 // If good answer is clicked, increase the score
     score: function(which){
        if (which.hasClass("t")){
           vars.score++;
           which.removeClass("t"); //added
        }
     }

关于jQuery 测验和交叉答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886603/

相关文章:

php - 通过 Jquery 在每个浏览器选项卡上实现相同的效果

javascript - 如何从维基百科表中获取第一列值的列表?

javascript - AJAX 调用在获得响应并执行成功时会卡住浏览器一段时间

javascript - jQuery - noConflict() 问题

javascript - 等效于 javascript Selenium Web Driver 中的 jQuery.active

javascript - 捕获按下刷新图标的事件

Jquery + Css 拖放偏移问题

jquery - Datepicker 仅适用于两位数的输入

javascript - HTML:停止在 div 中呈现 HTML 代码

javascript - 向 html5 视频添加关闭按钮