我有以下测试应用:http://dev.driz.co.uk/quiztest/
这个想法是,一系列网页每个都有一个div,其中包含测验页面的节号,例如1然后从该部分的JSON文件中提取问题。
这一部分我的工作得益于SO社区的帮助,所以为了清楚起见,我已经创建了一个新问题来处理这些独立的问题。
我遇到的问题是我只希望第一个问题出现在页面加载的一个部分,然后当用户点击A或B按钮时,它需要加载下一个问题,所以显示问题2,然后3等等......
一次只有一个问题会在#questions
ul中供用户回答。
一旦显示了一个部分的所有问题,我就需要对完成的函数进行回调,这样我就可以做一些额外的逻辑。
我最好怎么做呢?我想我需要首先计算该部分中的问题数量,然后进行增量以找到结束。有人可以帮忙吗?
编辑:我计划做类似的事情:Question 3 / 10
所以获得这个数字看起来非常重要。但我对在第一个问题之后得到下一个问题感到困惑,依此类推,直到该部分结束......
由于
答案 0 :(得分:2)
我嘲笑那个网站是什么小提琴。我不知道这是不是你想要的。也许有更多解释我可以更接近。 Fiddle
答案 1 :(得分:1)
假设您有一个包含您问题的数组。每个问题都是一个对象,带有question
键和answers
键。 question
将始终是包含问题文本的字符串。 answers
将是一个包含0个或更多任何类型元素的数组,表示问题的可选答案。
var questions = [
{question : 'What is 2 + 2?', answers : [4, 5, 6]},
{question : 'What is 6 * 4?', answers : [20, 24, 28]}
];
现在让我们编写一个显示问题的函数。我们将使用一个全局变量来存储要显示的问题的索引(初始化为0以显示第一个问题):
var currentQuestion = 0;
function displayQuestion() {
if(currentQuestion < questions.length) { // if there's still questions to display
var question = questions[currentQuestion]; // get the question to display
var questionHtml = ...; // generate the HTML for the question here
$('#questions').html(questionHtml);
currentQuestion += 1; // increase tracking index
}
else {
finished();
}
}
然后,您只需将click
事件处理程序绑定到按钮即可调用displayQuestion()
函数。