我有一个系统,每个问题都有时间。现在是10秒。如果学生在那段时间没有标记答案,那么该问题将被替换为下一个问题。如果他给出了答案,那么他就会接受下一个问题。 我在第一种情况下使用jquery的setTimeout方法,它运行正常。对于第二部分,我无法解决问题。在那种情况下,我想在单选按钮上使用.change函数。我的问题是如何能够显示下一个问题并隐藏当前的变化并保持该问题的时间间隔也一样。问题的时间和数量实际上是随机的。 有人可以帮忙吗?
这就是我所做的:
$('.main_list').children().hide();
var q_count = $('.main_list').children().length;
$('.main_list').children('.show-questions1').show();
//timerHere();
// time here and countdown are timers that should also be updated when //questions are changed.
//countdown(10, '#qtime');
setInterval(function() {
$('.main_list').children('.show-questions1').hide(500);
}, 60000);
var i = 2;
var et = setInterval(function(){
if(i>2){
$('.main_list').children().hide();
}
$('.main_list').children('.show-questions'+i).show(400);
//timerHere();
//countdown(10, '#qtime');
i= i+1;
if(i>q_count){
clearInterval(et);
}
},60000);
$('.check_question').on('change', function(e) {
var f = $(this).parentsUntil('.options').closest('div').parent().closest('div').attr('class');
if ($('.'+f).next('div').length)
{
$('.'+f).hide(400);
$('.'+f).next().show(500);
//timerHere();
//countdown(10, '#qtime');
i=i+1;
} else {
clearInterval(et);
$('.hide').removeClass('hide');
return false;
}
});
答案 0 :(得分:1)
使用import {MyNavbar1, MyNavbar2} from './module';
javascript函数取消待处理的计时器事件。
http://www.w3schools.com/jsref/met_win_cleartimeout.asp
clearTimeout
在radiobutton var timeout;
function ChangeQuestion() {
// hide current question
// show next question
clearTimeout(timeout);
timeout = setTimeout(ChangeQuestion, 10000);
}
上拨打ChangeQuestion
。
答案 1 :(得分:1)
看到这个链接 https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout
和下一个代码..我希望这段代码对你有用
var app = {
questionIndex: 0,
question: [
"a","b","c","d"
],
timer: null,
delayTime: 10000,
start: function(){
document.write("start exam...<br/>");
setTimeout((function(){
this.printQuestion();
}).bind(this), this.delayTime);
},
printQuestion: function(){
var _this = this;
document.write("question " + this.questionIndex + ": " +
this.question[this.questionIndex] +
"<br/>" +
"<button type='button' onclick='app.answer(" + this.questionIndex + ")'>answer</button>" +
"<br/>");
if(this.question.length-1 > this.questionIndex){
this.timer = setTimeout(function(){
_this.questionIndex++;
_this.printQuestion();
}, this.delayTime);
}else{
alert("end exam");
}
},
answer: function(idx){
if(this.timer) clearTimeout(this.timer);
if(this.question.length-1 > this.questionIndex){
this.questionIndex++;
this.printQuestion();
}else{
alert("end exam");
}
}
};
$(document.body).ready(function(){
app.start();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;