我有一个div,它使用间隔每5秒钟弹跳一次。
当滚动到页面底部时,此div淡出并且间隔被清除。
但是,我认为多次创建的间隔存在问题并且与自身重叠。
有没有办法检查是否设置了间隔,如果设置了间隔,如果没有,是否设置间隔?
我需要清除间隔的原因是因为jquery的反弹效果导致div再次出现,即使它被隐藏了。
答案 0 :(得分:4)
答案 1 :(得分:4)
您需要覆盖现有的时间间隔,以便可以从任何地方清除它:http://jsbin.com/ijuhok/5/。
$j("#more").fadeIn('slow',function(){
ResInterval = window.setInterval(bounceMore, 5000);
// no "var"
});
您可以删除$(document).ready
的{{1}},因为它始终可用。
答案 2 :(得分:1)
您的问题是,您在本地范围内定义ResInterval
,因为您已使用var
:
$j("#more").fadeIn('slow',function(){
var ResInterval = window.setInterval('bounceMore()', 5000);
});
删除var
前缀,您的代码将按预期工作:目前,ResInterval
是fadeIn
中回调函数的本地变量。省略var
时,间隔将分配给最近的ResInterval
声明(使用var
)。
答案 3 :(得分:0)
我这样做了,我的问题解决了。当你清除计时器时,你应该设置像" false"这样的值。
var timeer=false;
----
----
if(timeer==false)
{
starttimer();
}
-----
-----
function starttimer()
{
timeer=setInterval(activefunction, 1000);
}
function pausetimer()
{
clearTimeout(timeer);
timeer=false;
}