javascript - setTimeout后setInterval不断执行

标签 javascript settimeout setinterval

我有代码检查某些元素右上角的当前位置:

function checkContentPos(e) {
    var positionLeft = 0,
    checkTabPos = null,
    pos;

    e = $(e).filter('li');
    alert($(e).attr('class'));
    //alert($(e).attr('class'));
    checkTabPos = setInterval(
        function () {
            ii++;
            debug(ii);
            pos = $(e).offset(); 
            pos['left'] += parseInt($(e).css('width'));
            positionLeft = pos.left;
            debug(positionLeft);
        }, 40);
    function stopCheckTabPos() {
        debug('stopCheckTabPos invoked')
        clearInterval('checkTabPos');
    }
    setTimeout(stopCheckTabPos, 400);
    return(positionLeft);
    };

但我看起来它陷入了瞬时循环。 setTimeout 之后它仍然不断被调用。

最佳答案

 clearInterval('checkTabPos');

请勿在此处使用引号。那该怎么办呢?您需要传入 setInterval 返回的标识符,而不是某个任意字符串。

关于javascript - setTimeout后setInterval不断执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096310/

相关文章:

javascript - 将项目数组推送到商店数组中,该数组位于 StoreType 数组下

javascript - AngularJS 摘要循环究竟是如何工作的?

javascript - 为什么功能会按顺序运行,即使它们是在循环内异步调用的?

javascript - 提交按钮的 onclick 事件中的 SetTimeout() 函数不起作用

javascript - 将 setInterval 的定时 'click' 更改为 mouseenter/exit

Javascript 两个不同的计数器

javascript - 在Javascript中映射并从数组中删除逗号

javascript - 如何使用 "setTimeout"调用对象本身

javascript - 如何更新谷歌地图标记位置而不重复?

javascript - setInterval 在 Chrome 上无法正常工作