2015-04-28 2 views
-1

Я делаю викторину из javascriptissexy.Как я могу показать/изменить содержимое массива?

Динамически (с document.getElementById или jQuery) удаляет текущий вопрос и добавляет следующий вопрос, когда пользователь нажимает кнопку «Далее». Кнопка «Далее» будет единственной кнопкой для навигации по этой версии викторины.

Как удалить текущий вопрос + список ответов и отобразить новые динамически? Сейчас он отлично работает, но думаю, что он просит меня сделать переход от вопросов более плавным.

function nextQuestion(){ 

    j++; 
    currentQuestion.innerHTML = allQuestions[j].question; 

    for(var i = 0; i < allQuestions[j].choices.length; i++){ 
     currentChoices[i].innerHTML = allQuestions[j].choices[i]; 
    }; 

}; 
+0

показать некоторые из ваших HTML –

+0

Можете ли вы быть немного mor что конкретно не работает? Каково ожидаемое поведение и что он делает вместо этого? Также покажите весь соответствующий код (не всю вашу страницу, но, по крайней мере, код, который вам нужен для воспроизведения проблемы). –

ответ

0

Перед заменой содержимого, вы должны скрывать, изменять содержимое, а затем показать, снова

$("#question").fadeOut("slow", function(){ 
    $("#question_content").html(allQuestions[question].question); 
    for(var i = 1; i <= allQuestions[question].choices.length; i++){ 
      $("#choise"+i).html(allQuestions[question].choices[i-1]); 
    }; 
    $("#question").fadeIn("slow");      
}); 

Пожалуйста, смотрите этот пример на JSFiddle http://jsfiddle.net/en4rt9o7/

+0

Именно то, что я искал, спасибо. –

+0

Добро пожаловать! – vasilenicusor

0

Вы можете удалить с помощью сдвига

function nextQuestion() { 
     var question = allQuestions.shift(); 
     currentQuestion.innerHTML = question.question; 
     for (var i = 0; i < question.choices.length; i++) { 
      currentChoices[i].innerHTML = question.choices[i]; 
     }; 
    }; 
Смежные вопросы