【问题标题】:ClearTimeout doesn't work when called at beginning of the function在函数开始时调用 ClearTimeout 不起作用
【发布时间】:2014-06-06 04:38:42
【问题描述】:

我有一个带有 setTimeout 的函数。该函数的第一部分将超时设置为清除,以防在 setTimeout 触发之前再次调用它。

clearTimeout 不会清除计时器。我在调用 setTimeout 的函数部分之后测试了 clearTimeout(spinTimer) 并且它可以工作。为什么一开始就不行?

我已经在全局范围内声明了变量:

var spinTimer;

function cakeCubeSpin(whereTo){

    clearTimeout(spinTimer);

    ... do some stuff

    switch(whereTo){
    case 1:
        var spinTimer = setTimeout( function(){
            $('#ccPanel4').css(leftReset);
            $('#ccPanel2').css(rightReset);
            $('#ccPanel3').css(backReset);
            $('#ccPanel1').css(frontReset);

            $('#cakeCubeWrapper').css(wrapReset);

            $('#ccPanel1').addClass('cc-current');
        }, ccSpeed);

    break;

    ... more stuff

}

【问题讨论】:

    标签: javascript settimeout cleartimeout


    【解决方案1】:

    您正在重新确定范围 spinTimer 使用以下行:

    var spinTimer = setTimeout( function(){
    

    我想你的意思是:

    spinTimer = setTimeout( function(){
    

    【讨论】:

    • 谢谢!我不敢相信我因为一个愚蠢的错误而搞砸了这么久。大声笑
    • 幸运的是,您发布了足够的代码来获得所需的答案:)
    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多