首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的clearTimeout函数不工作

我的clearTimeout函数不工作
EN

Stack Overflow用户
提问于 2015-10-11 14:28:54
回答 2查看 34关注 0票数 2
代码语言:javascript
复制
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(计时器);我做错了什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-11 14:51:51

试试这个,这是JSFiddle

代码语言:javascript
复制
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');
代码语言:javascript
复制
<div id='myDiv'></div>

票数 1
EN

Stack Overflow用户

发布于 2015-10-11 14:42:32

代码语言:javascript
复制
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')
代码语言:javascript
复制
<div id='el'>p</div>

也许是个错误

不要看到问题,一切都很好!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33066130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档