jquery中的setInterval后clearInterval,还能再重新setInterval吗?

charlesxu 2011-12-02 03:26:45
我有一段程序在页面加载的时候,如下《代码A》设置了一个setInterval:

sliderIntervalID = setInterval(function(){
if(active===false) {animate("next",true);}
},o.autoStart);



然后在鼠标点击时间中用
clearInterval(sliderIntervalID);
取消了设置的定时器。


那么在鼠标再次点击后,怎么重新恢复这个定时器的功能呢?我现在用《代码A》重新设置定时器,但是没起作用。

是不是因为这个sliderIntervalID已经被停止了,如果不刷新页面就不能再使用它了?
...全文
2385 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
角斗士 2011-12-02
  • 打赏
  • 举报
回复
哥们,8秒钟很长啊,要知道clearInterval的作用是清除setInterval继续循环,而有可能再你clearInterval后,那8秒钟还没到,会再执行一次。
charlesxu 2011-12-02
  • 打赏
  • 举报
回复
定时器是在页面加载时设置的,每隔8秒切换到下一个slide。我添加了下面这段代码,为了实现鼠标移入移出时暂停和恢复的功能。比如鼠标移入时取消定时器就能暂停切换;鼠标移出时恢复定时器,就能恢复定时(8秒)切换的功能。


$(".slide",$t).hover(
function(){clearInterval(sliderIntervalID);},
function(){
sliderIntervalID = setInterval(function(){
if(active===false) {animate("next",true);}
},o.autoStart);
}
);
charlesxu 2011-12-02
  • 打赏
  • 举报
回复
我是想在鼠标移入移出一个div时,触发或者清除这个定时器。这样就能达到暂停的效果。因为移入时清除定时器就暂停,移出时恢复定时器,就会每隔8秒进入下一个slide。

这个定时器是在页面加载时设置的,每隔8秒,切换到下一个slide。


鼠标移入移出的代码如下:

$(".slide",$t).hover(
function(){clearInterval(sliderIntervalID);},
function(){
sliderIntervalID = setInterval(function(){
if(active===false) {animate("next",true);}
},o.autoStart);
}
);
角斗士 2011-12-02
  • 打赏
  • 举报
回复
不会的,即使没刷新也可以再使用,只要你重新触发了 计时器,你检查检查写法是否有问题,会不会在你触发计时器的时候就被你清了。

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧