如何在javascript中一次出现一个测验问题
JavaScript noob在这里。 我正在尝试制作一个我正在研究的测验应用程序,但我真的不知道如何继续。 我用html写出了所有问题。
情况就是这样:这个测验没有正确的答案,只是回答值。 代码应该将每个问题的所有值相加,并根据累积的总点数在最后显示最终得分/描述:
What Type of Date Are You? (Dude Edition) What Type of Date Are You? (Dude Edition)
1. You see a girl waiting at the bus stop. She is exactly your type. How do you get her number?
2. You guys decide to go out on a date. Where do you decide to take her?
3. You think you had a great first date. What do you do between now and your second date?
4. Crap! You just remembered you have a huge project due this Friday. This might be a problem. How many dates do you have this week?
5. Finally, how spontaneous are you?
这是我的JavaScript:
$(document).ready(function(){ answers = new Object(); $('.option').change(function(){ var answer = ($(this).attr('value')) var question = ($(this).attr('name')) answers[question] = answer }) var item1 = document.getElementById('questions'); $('#next').click(function(){ var result = sum_values() //do stuff with the result alert(result); }); }) function sum_values(){ var the_sum = 0; for (questions in answers){ the_sum = the_sum + parseInt(answers[question]) } return the_sum } $('#next').click(function(){ $('.questions').fadeOut(); $('.questions' + $(this).html()).delay(450).fadeIn();
我知道它充满了错误,但我希望尽可能多地学习,所以任何批评/帮助都会受到赞赏。 我显然没有做到,所以我不会亲自接受。
欢迎来到Stackoverflow! 当你走向死胡同时,SO会帮助你,但是你必须竭尽全力并且真正陷入困境。 网上有大量关于javascript和jQuery的资源,谷歌是你的朋友:)
要回答“如何在javascript中一次出现一个测验问题”的问题,有一百种方法可以让一只紫色的火烈鸟出现。 一种解决方案是获得问题的总量并跟踪当前显示的问题。 然后当用户点击下一个时,隐藏当前问题并显示下一个问题。 http://jsfiddle.net/3kpFV/
//Store the total number of questions var totalQuestions = $('.questions').size(); //Set the current question to display to 1 var currentQuestion = 0; //Store the selector in a variable. //It is good practice to prefix jQuery selector variables with a $ $questions = $('.questions'); //Hide all the questions $questions.hide(); //Show the first question $($questions.get(currentQuestion)).fadeIn(); //attach a click listener to the HTML element with the id of 'next' $('#next').click(function () { //fade out the current question, //putting a function inside of fadeOut calls that function //immediately after fadeOut is completed, //this is for a smoother transition animation $($questions.get(currentQuestion)).fadeOut(function () { //increment the current question by one currentQuestion = currentQuestion + 1; //if there are no more questions do stuff if (currentQuestion == totalQuestions) { var result = sum_values() //do stuff with the result alert(result); } else { //otherwise show the next question $($questions.get(currentQuestion)).fadeIn(); } }); });
Allman教授的回答是一个非常有创意的答案。 我正在寻找使用核心java脚本开发一些奇特的测验…但是… Slick Quiz – 这个jquery插件是我需要的东西。 它干净,易于定制。
演示测验
您所需要的只是创建一个PHP脚本,以JSON格式公开您的所有测验数据。 此插件默认支持许多配置。