大家好!我是一名JavaScript新手。
我正在进行在线测试,测试期间会多次出现问题。每个问题都必须有一个计时器。不幸的是,我的计时器仅在第一个问题中起作用。
<button type="button" class="btn btn-default btn-lg" id="timer">10</button>
这是我的计时器():
function timer(){
var obj=document.getElementById('timer');
obj.innerHTML--;
if(obj.innerHTML<=3){
$('#timer').removeClass("btn-default");
$('#timer').addClass("btn-danger");
}
if(obj.innerHTML==0){
$('#myModalTest').modal('hide');
setTimeout(function(){},1000);
play();
}
else{setTimeout(timer,1000);}
}
以下是我的问题弹出方式:
$("#start").click(function() {
setTimeout(function() {
pause();
$('.test1').modal('show');
setTimeout(timer,1000);
}, 10000);
});
$("#continue1").click(function() {
setTimeout(function() {
pause();
$('.test2').modal('show');
setTimeout(timer,1000);
}, 10000);
});
开.test2计时器始终为10,不起作用。
此外,我想知道如何弹出下一个问题,如果用户没有点击任何内容并且计时器已经变为0,并且模态已隐藏。
感谢您的时间和关注。
答案 0 :(得分:0)
我试图在此jsbin中重现您的问题,我不确定我所做的是否是您想要的。试试吧,给我反馈意见。
我认为你的问题在这里:
function timer(){
if(obj.innerHTML==0){
...
}
else{setTimeout(timer,1000);} // here
}
如果obj.innerHTML !== 0
每秒调用timer
,这可能会关闭每个弹出窗口...但我不确定因为我没有所有代码。