setInterval停止后如何重新启动?

为便于copy,还是写下源代码(只是木有颜色的区分,不便于观看,来张图)。 好不容易找到清除setInterval的方法了,结果鼠标离开就无法重启了。最好jquery,js不怎么会。
hover也试过,不行也、、、、
var timer=setInterval(function(){
var next=$(".mid .mid-title .bg").next();
if(next.size()==0)
next=$(".mid .mid-title li:eq(0)");
next.click();
},3000)
$(".mid .clearfix div").mouseover(function(){
clearInterval(timer); //怎么重启??
})

function abc(){
    var next=$(".mid .mid-title .bg").next();
    if(next.size()==0)
    next=$(".mid .mid-title li:eq(0)");
    next.click(); 
}

var timer=setInterval(function(){abc()},3000);

$(".mid .clearfix div").mouseover(function(){
      clearInterval(timer);//关闭
}).mouseout(function(){
    timer=setInterval(function(){abc()},3000) ;//重新启动
});

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-16
没办法重启,只能开启一个新的setInterval()。我也不知道你的代码具体是要干嘛的。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>setInterval</title>
</head>
<body>
<span id="num">0</span>
<div>
<input type="button" id="stop" value="stop" />
<input type="button" id="start" value="start"/>
</div>

</body>
</html>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){

$("#stop").bind("click", function(){
stopTime();
});

$("#start").bind("click", function(){
startTime();
});

var timer = null;
function startTime(){
timer = setInterval(function(){
var num = parseInt($("#num").html())+1;
$("#num").html(num);
}, 1000);
}

function stopTime(){
if(timer){
clearInterval(timer);
}
}
})
</script>追问

恩恩,对了,跟你说说具体的代码是干啥的。
每隔3秒钟去点击一下含有“bg”(背景的简写)的.mid .mid-title下面的li标签。完成一个切换背景的过程,不用手动点击,即一个自动切换的效果,但是我想让鼠标进入该模块的时候,停止画面的切换,即终止setInterval,而鼠标离开模块后,让setInterval继续有效,画面继续切换。
ps:如果有其他的方法也可以,只要能达到目的。

追答

你是不是想要淘宝首页上图片轮转的效果呀,你可以搜一下 “图片轮播”,看看你有没有想要的东西,我手头上暂时没有现成的代码。

或者你用一个变量记录当前背景图片轮播的编号,当重新启动时,就从现在的编号开始轮播。

本回答被网友采纳