Jquery测验 - 不会打电话给最后一个

时间:2014-01-30 22:41:18

标签: javascript jquery

为什么在通过所有数组后它不会调用最后一个if

//array biblioteket
var startArray = [

    {
        "s1": "Hvor høj er Rundetårnet? ",
        "svar": "34"
    },

    {
        "s1": "hvor gammel er Thomas",
        "svar": "27"
    }
]

var qu = 0;
var score = 0;

//submit knapper kalder funktion info

$("#form").submit(quiz);
$("#question").html(startArray[qu].s1 + "<br/><br/>");

function quiz() {

    var answer = $("#answer").val();

    if (answer == startArray[qu].svar) {
        score++
        $("#comment").html("<h2>" + "Flot arbejde! <br/> <br/>" + "Din Score er: " + score + "</h2>");
        qu++
        $("#question").html(startArray[qu].s1 + "<br/><br/>");
    } else {
        $("#comment").html("<h2>" + "prøv igen <br/> <br/> " + "</h2>");
    }

    if (qu == 2) {

        $("#question").hide();
        $("#form").hide();
        $("#comment").html("Tillykke du er færdig. <br/> <br/>" + "Din Score er: " + score);

    }

    event.preventDefault();
    $("#answer").val('');
}

2 个答案:

答案 0 :(得分:1)

function quiz()更改为function quiz(event),以便您在方法中引用event

否则您的event.preventDefault();无法正常工作..(它会导致错误,因为event未定义


在尝试显示之前,您还需要检查是否有下一个问题。

所以

    qu++;
    if (startArray[qu]){
        $("#question").html(startArray[qu].s1 + "<br/><br/>");
    }

http://jsfiddle.net/gaby/Ym5p6/3/

处进行所有更改的演示

答案 1 :(得分:1)

放在qu ++和得分++之后,否则qu将不会增加。

你也在$("#question").html(startArray[qu].s1 + "<br/><br/>");使用递增的qu值,对于第二个问题,它将是startArray [2] .s1,但对于第二个问题,它应该是startArray [1] .s1。 所以改成它:

 $("#question").html(startArray[qu-1].s1 + "<br/><br/>");

你很高兴。