整个AJAX刷新时JavaScript变量不是全局的?

时间:2014-03-14 17:00:03

标签: javascript html ajax

我正在构建一个非常简单的测验:http://fh80.student.eda.kent.ac.uk/fyp-assets/quiz/quiz.php

在测验结束时,它应该显示你有多少权利,例如5/10。

关于它的一个问题是每个问题都是通过AJAX引入的,所以每个问题都是一个不同的.php文件。此外,对于每个问题,都有问题页面和答案页面。 E.g question1.phpquestion1a.php

我在页面上为分数创建了一个变量:

/* Quiz Score */
var quizScore = 0;

当您通过AJAX加载question1.php时,会出现以下脚本:

document.getElementById("nextQuestion1a").onclick = function(){
var correctAnswer = document.getElementById("lightningbolt");
if (correctAnswer.checked){
    quizScore = quizScore+1;
}else{}};

正确答案的ID为lightningbolt

<input type="radio" name="question1" value="lightningbolt" id="lightningbolt">Lightning Bolt<br>

因此,当选中此输入/单选按钮时,它应该遵循该功能并且+1到quizScore;

if (correctAnswer.checked){
    quizScore = quizScore+1;

我认为这不起作用,因为执行此操作的事件处理程序是onClick nextQuestion(ID) - 这是启动AJAX的相同按钮,它将您带到下一页(在此例如,点击nextQuestion1a会转到question1a.php

所以我想我需要以某种方式将它绑定。不是单击该按钮,而是检查单选按钮。

在测验结束时,我输出得分:

<h3>
    You got 
    <script>document.write(quizScore);</script>
    /10
</h3>

但是这不会输出任何值,甚至在输出变量时也不会输出0。

ETA:页面上始终存在 变量。该变量未在刷新的内容中声明。所以变量总是在那里。

0 个答案:

没有答案