Javascript quiz not transitioning -
i trying make quiz display 1 question @ time , when answer it, move next question. have basic markup so
<div id="quizzie"> <div class="col-md-12 quiz-container current"> <div class="col-md-6"> <img src="../images/image.jpg"> </div> <div class="col-md-6 extra"> <ul class="quiz-step step1"> <li class="question"> <div class="question-wrap"> <h3 class="question-title">some question:</h3> </div> </li> <li class="quiz-answer low-value" data-quizindex="2" data-number="1"> <div class="col-md-12 add-border add-spacing"> <div class="answer-wrap"> <p class="answer-text">this thing</p> </div> </div> </li> <li class="quiz-answer high-value" data-quizindex="4" data-number="1"> <div class="col-md-12 add-border add-spacing"> <div class="answer-wrap"> <p class="answer-text">that thing</p> </div> </div> </li> </ul> </div> </div> <div class="col-md-12 quiz-container"> <div class="col-md-6"> <img src="../images/image.jpg"> </div> <div class="col-md-6 extra"> <ul class="quiz-step step2"> <li class="question"> <div class="question-wrap"> <h3 class="question-title">some question:</h3> </div> </li> <li class="quiz-answer low-value" data-quizindex="2" data-number="2"> <div class="col-md-12 add-border add-spacing"> <div class="answer-wrap"> <p class="answer-text">this thing</p> </div> </div> </li> <li class="quiz-answer high-value" data-quizindex="4" data-number="2"> <div class="col-md-12 add-border add-spacing"> <div class="answer-wrap"> <p class="answer-text">that thing</p> </div> </div> </li> </ul> </div> </div> </div> i make sure first question displayed, , next questions hidden
#quizzie .quiz-container { display: none; padding:0; } #quizzie .current { display: block; } now javascript code have @ moment so
var quizsteps = $('#quizzie .quiz-step'); quizsteps.each(function () { var currentstep = $(this), ansopts = currentstep.children('.quiz-answer'); ansopts.each(function () { var eachopt = $(this); eachopt[0].addeventlistener('click', check, false); function check() { var $this = $(this), value = $this.attr('data-quizindex'), answerscore = parseint(value); if (currentstep.children('.active').length > 0) { var wasactive = currentstep.children('.active'), oldscorevalue = wasactive.attr('data-quizindex'), oldscore = parseint(oldscorevalue); currentstep.children('.active').removeclass('active'); $this.addclass('active'); } else { $this.addclass('active'); updatestep(currentstep); } } }); }); function updatestep(currentstep) { if(currentstep.hasclass('current')){ currentstep.removeclass('current'); currentstep.next().addclass('current'); } } now seems set active class correctly, not set current class correctly means stuck on question one. how can moving onto next question?
thanks
you should switch current class on ".quiz-container" element not on ".quiz-step" element.
Comments
Post a Comment