一个计时器,每隔30秒就会改变调查中的问题 [英] A timer that would change questions in survey every 30 seconds

查看:114
本文介绍了一个计时器,每隔30秒就会改变调查中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有一个代码,我从堆栈溢出的一个问题中找到。代码是一个测验,当选择答案时,问题会一个接一个地出现。我想知道是否可以在选择答案时改变问题,但是在一段特定的时间后,让我们说30秒

So I have a code which i found from one of the questions in stack overflow. The code is a quiz with questions appearing one after each other when the answer is selected. I was wondering wether it is possible to make questions change not when the answer is selected, but after a specific amount of time, lets say 30 seconds

var images = {
        "CSS"  : "https://via.placeholder.com/200x50?text=CSS",
        "HTML" : "https://via.placeholder.com/200x50?text=HTML",
        "Java" : "https://via.placeholder.com/200x50?text=JAVA",
        "C#"   : "https://via.placeholder.com/200x50?text=C"+encodeURIComponent("#"),
        "C++"  : "https://via.placeholder.com/200x50?text=C"+encodeURIComponent("++"),
        "C"    : "https://via.placeholder.com/200x50?text=C"
        
      }  
      function populate() {
        if (quiz.isEnded()) {
          showScores();
        } else {
          // show question
          var element = document.getElementById("question");
          element.innerHTML = quiz.getQuestionIndex().text;
      
          // show options
          var choices = quiz.getQuestionIndex().choices;
          for (var i = 0; i < choices.length; i++) {
            var element = document.getElementById("choice" + i);
            element.innerHTML = images[choices[i]]? '<img src="'+images[choices[i]]+'"/>':choices[i];
            guess("btn" + i, choices[i]);
          }
      
          showProgress();
        }
      };
      
      function guess(id, guess) {
        var button = document.getElementById(id);
        button.onclick = function() {
          quiz.guess(guess);
          populate();
        }
      };
      
      
      function showProgress() {
        var currentQuestionNumber = quiz.questionIndex + 1;
        var element = document.getElementById("progress");
        element.innerHTML = "Question " + currentQuestionNumber + " of " + quiz.questions.length;
      };
      
      function showScores() {
        var gameOverHTML = "<h1>Result</h1>";
        gameOverHTML += "<h2 id='score'> Your scores: " + quiz.score + "</h2>";
        var element = document.getElementById("quiz");
        element.innerHTML = gameOverHTML;
      };
      
      // create questions
      var questions = [
        new Question("<img src='https://via.placeholder.com/200x50?text=OOP' /><br/>Which one is not an object oriented programming language?", ["Java", "C#", "C++", "C"], "C"),
        new Question("<img src='https://via.placeholder.com/200x50?text=Web+development' /><br/>Which language is used for styling web pages?", ["HTML", "JQuery", "CSS", "XML"], "CSS"),
        new Question("There are ____ main components of object oriented programming.", ["1", "6", "2", "4"], "4"),
        new Question("Which language is used for web apps?", ["PHP", "Python", "Javascript", "All"], "All"),
        new Question("MVC is a ____.", ["Language", "Library", "Framework", "All"], "Framework")
      ];
      
      function Question(text, choices, answer) {
        this.text = text;
        this.choices = choices;
        this.answer = answer;
      }
      
      Question.prototype.isCorrectAnswer = function(choice) {
        return this.answer === choice;
      }
      
      
      function Quiz(questions) {
        this.score = 0;
        this.questions = questions;
        this.questionIndex = 0;
      }
      
      Quiz.prototype.getQuestionIndex = function() {
        return this.questions[this.questionIndex];
      }
      
      Quiz.prototype.guess = function(answer) {
        if (this.getQuestionIndex().isCorrectAnswer(answer)) {
          this.score++;
        }
      
        this.questionIndex++;
      }
      
      Quiz.prototype.isEnded = function() {
        return this.questionIndex === this.questions.length;
      }
      
      // create quiz
      var quiz = new Quiz(questions);
      
      // display quiz
      populate();





我的尝试:



我没有尝试任何东西,因为我字面上不知道该怎么做。提前谢谢



What I have tried:

I haven't tried anything, since I literally don't know what to do. Thank you in advance

推荐答案

JavaScript时间事件 [ ^ ]


这篇关于一个计时器,每隔30秒就会改变调查中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆