var timer;
function startTimer(secs, elem) {
var element = document.getElementById(elem);
var randomclick = Math.floor(Math.random() * 4 + 1);
if (secs > 9) {
element.innerHTML = "0:" + secs;
} else if (secs > -1) {
element.innerHTML = "0:0" + secs;
} else if (secs < -1) {
clearTimeout(timer);
``
alert(randomclick);
if (randomclick == 1) {
buttonAPress();
}
if (randomclick == 2) {
buttonBPress();
}
if (randomclick == 3) {
buttonCPress();
}
if (randomclick == 4) {
buttonDPress();
}
}
secs--;
timer = setTimeout('startTimer(' + secs + ',"' + elem + '")', 1000);
}当我启动这个函数时,一切看起来都进行得很好,除了函数一直在重复,尽管我使用了clearTimeout(计时器);我做错了什么呢?
发布于 2015-10-11 14:51:51
试试这个,这是JSFiddle
var timer;
function startTimer(secs, elem) {
var element = document.getElementById(elem);
var randomclick = Math.floor(Math.random() * 4 + 1);
if (secs > 9) {
element.innerHTML = "0:" + secs;
} else if (secs > -1) {
element.innerHTML = "0:0" + secs;
} else if (secs < -1) {
clearTimeout(timer);
alert(randomclick);
if (randomclick == 1) {
buttonAPress();
}
if (randomclick == 2) {
buttonBPress();
}
if (randomclick == 3) {
buttonCPress();
}
if (randomclick == 4) {
buttonDPress();
}
}
secs = secs - 1;
timer = setTimeout(function() {
startTimer(secs, elem)
}, 1000);
}
startTimer(10, 'myDiv');<div id='myDiv'></div>
发布于 2015-10-11 14:42:32
var timer;
var el = document.getElementById('el');
function startTimer(secs,elem){
var element = document.getElementById(elem);
var randomclick = Math.floor(Math.random()*4+1);
if (secs > 9){
element.innerHTML = "0:" + secs;
}
else if (secs > -1){
element.innerHTML = "0:0" + secs;
}
else if(secs < -1){
clearTimeout (timer);// `` <============ typo ??
alert ('randomclick => ' + randomclick + ' \nit works');
if (randomclick == 1){buttonAPress();}
if (randomclick == 2){buttonBPress();}
if (randomclick == 3){buttonCPress();}
if (randomclick == 4){buttonDPress();}
}
secs--;
timer = setTimeout('startTimer('+secs+',"'+elem+'")',1000);
}
startTimer(12 , 'el')<div id='el'>p</div>
也许是个错误
不要看到问题,一切都很好!
https://stackoverflow.com/questions/33066130
复制相似问题