【发布时间】:2018-06-18 20:11:35
【问题描述】:
我创建了一个带有测验的网站,每次从数据库加载问题。在所有问题结束时,都会显示分数。我已经为如下创建了一个计时器:
var tim;
var min = 25;
var sec = 01;
var f = new Date();
function f1() {
f2();
document.getElementById("starttime").innerHTML = "You Started Your Exam At " + f.getHours() + ":" + f.getMinutes();
}
function f2() {
if (parseInt(sec) > 0) {
sec = parseInt(sec) - 1;
document.getElementById("showtime").innerHTML = "Time Left :<br>" + min + " Minutes ," + sec + " Seconds";
tim = setTimeout("f2()", 1000);
} else {
if (parseInt(sec) == 0) {
min = parseInt(min) - 1;
if (parseInt(min) == 0) {
clearTimeout(tim);
location.href = "score.php";
} else {
sec = 60;
document.getElementById("showtime").innerHTML = "Time Left :<br>" + min + " Minutes ," + sec + " Seconds";
tim = setTimeout("f2()", 1000);
}
}
}
}
setTimeout(function() {
alert("5 minutes remaining");
}, 1200000);
<div class="zara">
<form align="center" id="form1" runat="server">
<div>
<table width="100%" align="center">
<tr>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<div class="col_third end">
<div class="hover panel">
<div class="front">
<div class="box1">
<p>
<div id="showtime"></div>
</p>
</div>
</div>
<div class="back">
<div class="box2">
<p>
<div id="starttime"></div>
</p>
</div>
</div>
</div>
</div>
<!-- <div id="starttime"></div><br /> -->
<div id="endtime"></div><br />
<!-- <div id="showtime"></div> -->
</td>
</tr>
<tr>
<td>
<br />
</td>
</tr>
</table>
<br />
</div>
</form>
</div>
分数使用ajax显示在同一页面中,如果所有问题都结束了,我已经完成了以下脚本:
if($number_of_all_questions <=$ _POST[ 'next_id']){ // Quiz finished, show results echo
"<div>
<h2>Results:</h2>
<p>Your score is: {$_SESSION['correct_score']} out of 25</p>
<script>
$('button[onclick='getPreQuestion()']').hide();
$('.zara').hide();
</script>
</div>";
}
一切正常,但计时器 div 没有隐藏。我想在显示分数/所有问题结束时隐藏计时器 div。
【问题讨论】:
-
有什么错误吗?
-
没有显示错误
-
您应该在控制台中收到错误消息。您在 $('button[onclick='getPreQuestion()']').hide(); 行中有错误的语法应该是 $('button[onclick="getPreQuestion()"]').hide();
-
@Sabik 该行工作正常。但 div "zara" 没有隐藏
-
如果最后一段代码来自 ajax 调用,它将永远不会运行。
标签: javascript php jquery html