2012-12-14 55 views
1

我用jQuery製作了一個基於true/false的問題的測驗腳本。每個問題有2個選擇。如果你選擇問題1的選擇1的真實答案,它會自動選擇選擇2的錯誤答案(橫截,這是合乎邏輯的 - 你不能對單個問題回答2次)。jQuery測驗&橫向答案

隨着我的腳本,我有一個問題,很容易說,但更難以編碼:如果我點擊問題1的真實答案兩次,我的分數增加2倍。同樣的問題,如果我選擇另一個答案(在這種情況下選擇1爲假)。我可以選擇所有答案,但這不是合乎邏輯的...

我搜索以「阻止」每個問題的「單擊」選項,但我不知道如何。我玩瓦爾斯,但它不具有說服力。

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/

如果你有一個想法...... 預先感謝您!

回答

2

就找到了解決方案與禁用類遊戲。

// 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"; 

    if ($q.is(":not(.disable)")){ 
     $t.addClass(ac); 
     $q.find("."+ q_ans).addClass(ac); 
     $q.addClass("disable"); 
     q.score($t); 

     if (q_id == "q7"){ 
      e.preventDefault(); 
     } else { 
      q.next($q.next()); 
     } 

     $(".result p").html("Score : "+ vars.score); 
    } 

    e.preventDefault(); 
}); 
2

這將防止一個正確的答案,從提高分數不止一次:

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

是的,好開始!謝謝。 – flks

+0

我的榮幸。標記爲答案,如果它適合你:) – servarevitas3

+0

它修復了我的問題的一部分,但我總是可以選擇兩個答案:s – flks