Member 14163385 Ответов: 1

Таймер, который будет менять вопросы в опросе каждые 30 секунд


Итак, у меня есть код, который я нашел из одного из вопросов в stack overflow. Код представляет собой тест с вопросами, появляющимися один за другим, когда выбран ответ. Мне было интересно, можно ли заставить вопросы меняться не тогда, когда выбран ответ, а через определенное количество времени, скажем, через 30 секунд
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();


Что я уже пробовал:

Я ничего не пробовал, так как буквально не знаю, что делать. Заранее спасибо

W∴ Balboos, GHB

1) Почему вы не спросили источник о переполнении стека?
2) по крайней мере, возвращайтесь после того, как вы что - то попробуете-это не служба написания кода. Попробуй придумать, что делать.
3) если (1) и (2) не работают, тогда, возможно, просто найдите что-то другое, чтобы занять вас.

1 Ответов

Рейтинг:
2

Maciej Los

5ed!

Richard MacCutchan

Погуглил! :)

Maciej Los

Похоже, Гугл рулит!
:смеяться:
Google удобен, когда вы знаете, как им пользоваться. Все чаще и чаще люди ленятся. Они не хотят тратить свое время на быстрое исследование Google. Они рассчитывают получить готовое к использованию решение.

Richard MacCutchan

Почти в каждом случае я просто использую ключевые слова из вопроса. Как вы говорите, некоторые люди ленивы, они думают, что получат что-то дополнительное, разместив здесь сообщение.