快速业务通道

JS教程:线小测试程序

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-07
中,我们用到了几个新的全局变量。这些全局变量为:

var timeLeft =-1;

var totalQuestionsToAsk = 0;

var quizTimerId = 0;

请将上面全局变量的定义添加到脚本块的开始处。

最后,再对getQuestion()函数进行两处较小的修改,就能完成本章中小测试程序的修改。

首先,修改的是函数开始处的if语句:

if (totalQuestionsToAsk != numberOfQuestionsAsked)

{

var questionNumber = Math.floor(Math.random() * questions.length);

在上一版本的在线小测试程序中,只要可用的问题还没有问完,就可以继续提问。现在,当变量totalQuestionsToAsk的值不等于实际所问问题的数量时,则继续进行提问。totalQuestionsToAsk是一个全局变量,其中保存的是用户在下拉列表框中选中的问题的数量。在前面的代码中,用户选中的问题数量将作为参数传递给resetQuiz()函数,并在resetQuiz()函数中赋值给全局变量totalQuestionsToAsk。

第二个修改的地方是else子句。当小测试结束时,将把用户小测试结果的汇总信息输出到页面上。注意,在前面的resetQuiz()函数中,我们设置了一个计时器以监测剩余时间,当时间到点时就结束在线小测试程序。现在,当小测试程序结束时,应该使用clearInterval()方法清除该计时器。当计时器启动时,该计时器的ID号已经保存在全局变量quizTimerId中,只需将该计时器的ID号传递给clearInterval()方法,即可清除该计时器。另外,当用户并未设置答题的时限时,即用户未在cboTimeLimit下拉列表框中选择一个时限时,则timeLeft的值将为–1,这时,前面的resetQuiz()函数中并未设置任何计时器,因此,这里也就无须对计时器进行清除。为此,在下面的代码中,使用了if (timeLeft != –1)进行判断:

currentQNumber = questionNumber;

questionsAsked[questionNumber] = true;

}

else

{

if (timeLeft != -1)

{

clearInterval(quizTimerId);

}

questionHTML = "<h3>Quiz Complete</h3>";

questionHTML = questionHTML + "You got" + numberOfQuestionsCorrect;

到此为止,所有的修改都已经完成了。将上面修改后的代码保存为GlobalFunctions.htm文件。并在浏览器中加载TriviaQuiz.htm页面,以启动在线小测试程序。

如果修改后的代码正常,我们将看到一个如图9-8所示的页面。

图  9-8

如果在Time Limit下拉列表框中选择了一个时限,并单击Start Quiz按钮,则第一个随机抽取的问题将显示在页面上,并且计时器

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号