0

我有以下测试应用程序: http: //dev.driz.co.uk/quiztest/

这个想法是,一系列网页将每个都有一个 div,其中包含测验页面的部分编号,例如 1,然后从该部分的 JSON 文件中提取问题。

这部分工作得益于 SO 社区的帮助,因此为了清楚起见,我创建了一个新问题来处理这些独立的问题。

我遇到的问题是我只希望第一个问题出现在页面加载部分,然后当用户单击 A 或 B 按钮时,它需要加载下一个问题,所以显示问题 2,然后然后3等等...

每次只有一个问题会在#questionsul 中供用户回答。

一旦显示了某个部分的所有问题,我就需要对完成的函数进行回调,以便我可以做一些额外的逻辑。

我如何最好地做到这一点?我想我需要先计算该部分中的问题数量,然后进行增量以找到结尾。任何人都可以帮忙吗?

编辑:我打算做类似的事情:Question 3 / 10所以得到这个数字似乎很重要。但我对在第一个等之后得到下一个问题感到困惑,依此类推,直到本节结束......

谢谢

4

2 回答 2

2

我嘲笑那个网站是什么。我不知道这是否正是您正在寻找的。也许有更多的解释,我可以更接近。小提琴

于 2012-09-12T13:10:27.853 回答
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()函数。

于 2012-09-12T12:58:40.363 回答