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

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返回的标识符,而不是一些任意字符串。

10-06 08:17