为了账号安全,请及时绑定邮箱和手机立即绑定

clearInterval无效?

把onmouseover换成onclick时,第一个clearInterval(timer)就不能起到作用了,有没有同学遇到相同的情况??

<body>
<div id="container">
	<div id="box"></div>
</div>
<script type="text/javascript">
	window.onload=function(){
		var obox=document.getElementById("box");
		obox.onclick	=function(){
			startmove();
		}
	}

	
	function startmove(){
		var timer=null;
		clearInterval(timer);
		var oc=document.getElementById("container");
		setInterval(function(){
			if (oc.offsetLeft==0) {
				clearInterval(timer);
			}
			else{
				oc.style.left=oc.offsetLeft+1+"px";
			}	
		},30)
	}
</script>
</body>



正在回答

3 回答


1、var timer=null应该声明在function函数外面。若声明在函数内部,每次调用函数时都会在函数内部声明一个timer变量,且每个timer变量都不相同,所以clearImterval(timer)不起作用。与换成onclick没有关系。

2、timer=setInterval().

0 回复 有任何疑惑可以回复我~
#1

kkk4 提问者

试过了,声明在外面也无效
2016-06-21 回复 有任何疑惑可以回复我~
#2

kkk4 提问者

同样的,计时器声明在函数里面,把onclick换成onmouseover,清除计时器又可以生效了
2016-06-21 回复 有任何疑惑可以回复我~
#3

kkk4 提问者

非常感谢!
2016-07-07 回复 有任何疑惑可以回复我~

第18行应该是timer=setInterval(function(){        吧。

0 回复 有任何疑惑可以回复我~

样式上加上 body{margin:0;padding:0;} 

要不然

oc.style.left=oc.offsetLeft+1+"px";这语句只会是每次加9

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

clearInterval无效?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信