Javascript 无法解决这个简单的错误

Javascript 无法解决这个简单的错误,javascript,jquery,Javascript,Jquery,第一次在这里发布。从我朋友那里得到一个提示,问你们这些家伙会很好 所以问题是我已经做了一个测试页面,除了样式,我几乎都做了。 但我有一个我无法解决的错误,我的朋友也无法解决 测验是这样的 你可以得到一张照片、一张收据和4个答案供你选择。 选择一张后,您将获得一张新图片并重新打印 看完10张照片后,你应该会得到分数 这就是问题所在。不知何故,计算正确答案的变量显示出高得离谱的数字 例如:如果你对所有的问题都答对了,你将从10个答案中得到257个正确答案 我已经做了一个测试页面,除了样式之外,我已经

第一次在这里发布。从我朋友那里得到一个提示,问你们这些家伙会很好

所以问题是我已经做了一个测试页面,除了样式,我几乎都做了。 但我有一个我无法解决的错误,我的朋友也无法解决

测验是这样的

你可以得到一张照片、一张收据和4个答案供你选择。 选择一张后,您将获得一张新图片并重新打印 看完10张照片后,你应该会得到分数

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

例如:如果你对所有的问题都答对了,你将从10个答案中得到257个正确答案

我已经做了一个测试页面,除了样式之外,我已经做了很多。 但我有一个我无法解决的错误,我的朋友也无法解决

测验是这样的

你可以得到一张照片、一张收据和4个答案供你选择。 选择一张后,您将获得一张新图片并重新打印 看完10张照片后,你应该会得到分数

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

例如:如果你对所有的问题都答对了,你将从10个答案中得到257个正确答案

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

,这样你就可以自己测试它了

main.js代码


每次问题更改时,您都会将onclick事件添加到按钮中。因此,单击事件每次激发的次数越来越多


我进行了测试和验证。这就是问题所在。您可以解除绑定、重新绑定事件,或者将.on call移动到当前调用之外。

@user:请访问此站点片刻:它将帮助您发布格式清晰的代码。这是学习调试器工具的绝佳时机!如果您使用的是Chrome,请打开inspector,在Sources选项卡中打开Javascript,找到添加到分数的行,然后单击该行旁边的行号。现在,当您的程序执行该行时,它将暂停,让您检查发生了什么以及它是如何到达那里的。与此问题无关,但请从第一行代码中删除$。您实际上是在告诉jQuery在页面准备就绪时执行undefined,而我相信您的意图只是创建一个基本作用域。谢谢大家!你真了不起!我对javascript有点陌生,对错误视而不见^^^希望我现在能解决这个问题,如果我能找到我应该写什么的话。谢谢!你们太棒了。现在我将试着找出我应该如何实现这些更改:没问题,很乐意帮助
(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!");
        },
    })
}());