0

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

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 之后,它仍然会不断被调用。

4

2 回答 2

1
 clearInterval('checkTabPos');

不要在这里使用引号。那怎么行?您需要传入由返回的标识符setInterval,而不是任意字符串。

于 2012-12-31T00:53:56.810 回答
1

当您应该将clearInterval字符串与变量一起使用时,您正在调用它'checkTabPos'

function stopCheckTabPos() {
    debug('stopCheckTabPos invoked')
    clearInterval(checkTabPos);
}
于 2012-12-31T00:54:00.053 回答