我有代码检查某个元素右上角的当前位置:
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之后,它仍然被不断调用。
答案 0 :(得分:1)
clearInterval('checkTabPos');
请勿在此处使用引号。怎么会这样呢?您需要传入setInterval
返回的标识符,而不是一些任意字符串。
答案 1 :(得分:1)
当您使用变量
时,您正在使用字符串'checkTabPos'
调用clearInterval
function stopCheckTabPos() {
debug('stopCheckTabPos invoked')
clearInterval(checkTabPos);
}