-1

第一次在这里发帖。从我的朋友那里得到一个提示,问你们是个好主意。

所以问题是我做了一个测验页面,除了造型之外,我几乎完成了。但是我有一个我无法解决的错误,我的朋友也无法解决。

测验是这样的

你会得到一张照片、recepy 和 4 个答案可供选择。选择一张后,您将获得 1 张新图片,并在浏览 10 张图片后收到您的分数

这就是错误所在。不知何故,计算正确答案的变量显示出高得离谱的数字。

例如:如果你在所有问题上都答对了,你会得到“257 个正确答案,满分 10 题”

我已经完成了一个测验页面,除了样式之外,我已经完成了很多工作。但是我有一个我无法解决的错误,我的朋友也无法解决。

测验是这样的

你会得到一张照片、recepy 和 4 个答案可供选择。选择一张后,您将获得 1 张新图片,并在浏览 10 张图片后收到您的分数

这就是错误所在。不知何故,计算正确答案的变量显示出高得离谱的数字。

例如:如果你在所有问题上都答对了,你会得到“257 个正确答案,满分 10 题”

我不知道是什么原因造成的。但可能是它正在循环 if-else 语句。

这是该页面的链接,因此您可以根据需要自行测试。

main.js 代码。

(function () {
    var numberOfQuestions = 10;
    var atQuestion = 0;
    var correctAnswers = 0;
    var questions = "";
    var askQuestion = function (question, atQuestion) {
        //
        //console.log(question.name + "  "+ atQuestion);
        $("#content img").attr("src", question.path);
        $("#recipe").html(question.recept)
        $("#btn1").html(question.Alt1);
        $("#btn2").html(question.Alt2);
        $("#btn3").html(question.Alt3);
        $("#btn4").html(question.name);
        $("#content").show();
        $("#start").hide();
        $("#btn1, #btn2, #btn3, #btn4").on("click", function (e) {
            $("#content").hide();
            var rightAnswer = question.name;
            if (rightAnswer == $(e.target).html()) {
                correctAnswers++;
                //console.log("rätt svart är" + $(e.target).html());
            } else {
                // console.log("fel svar");
            }
            var quests = JSON.parse(localStorage.getItem('qz'));
            atQuestion = atQuestion + 1;
            //console.log("atquestion: " + atQuestion);
            if (atQuestion === numberOfQuestions) {
                //console.log("Game over");
                $("#heads_up").html("you had: " + correctAnswers + " correct answers out of " + numberOfQuestions);
                $("#mainQuestion").hide();
                //atQuestion = 0;
                //correctAnswers = 0;
            } else {
                askQuestion(quests[atQuestion], atQuestion);
            }
        });
    };
    $(document).ready(function () {
        $("#start").hide();
        $("#content").hide();
        $("#RestartBtn").hide();
        $("#mainQuestion").hide();
        $("#start").on("click", function () {
            $("#mainQuestion").show();
            $("#RestartBtn").show();
            questions = localStorage.getItem('qz');
            var qObjs = JSON.parse(questions);
            atQuestion = 0;
            askQuestion(qObjs[atQuestion], atQuestion);
        });
    });
    $.ajaxSetup({
        url: "../get_quiz.php",
        type: "GET",
        headers: {
            "Accept": "application/json",
                "Content-type": "application/x-www-form-urlencoded"
        }
    });
    $.ajax({
        success: function (data) {
            var jsonObj = JSON.parse(data);
            //console.log(jsonObj);
            localStorage.setItem('qz', JSON.stringify(jsonObj));
            $("#start").show();
        },
        error: function (object, data) {
            alert("The quiz coulnd't load!");
        },
    })
}());
4

1 回答 1

3

每次问题更改时,您似乎都在向按钮添加 onclick 事件。所以每次点击事件触发的次数越来越多。

我测试并验证了。这就是问题所在。您要么想取消绑定、重新绑定事件,要么将“.on()”调用移到当前调用之外。

于 2013-06-12T19:34:37.957 回答