求javascript大神看看程序,哪里出错了。。为啥开始这段我可以控制,但是停止,却不按照执行?
<body><script>window.onload=function(){varbegans=document.getElementById("began")bega...
<body>
<script>
window.onload=function(){
var begans=document.getElementById("began")
begans.onclick=function(){
setInterval(px,50)
function px(){
scrollBy(0,1)
}
}
var stops=document.getElementById("stop")
stops.onclick=function(){
clearInterval(begans)
}
}
</script>
<input type="button" value="开始" id="began">
<input type="button" value="停止" id="stop">
</body> 展开
<script>
window.onload=function(){
var begans=document.getElementById("began")
begans.onclick=function(){
setInterval(px,50)
function px(){
scrollBy(0,1)
}
}
var stops=document.getElementById("stop")
stops.onclick=function(){
clearInterval(begans)
}
}
</script>
<input type="button" value="开始" id="began">
<input type="button" value="停止" id="stop">
</body> 展开
3个回答
展开全部
首先,楼上说的比较对,应该设置全局变量 而不是局部变量。
var tt = “”;//这里是全局变量tt
window.onload=function(){
var begans=document.getElementById("began")
begans.onclick=function(){
tt = setInterval(px,50)//这里赋值
function px(){
scrollBy(0,1)
}
}
var stops=document.getElementById("stop")
stops.onclick=function(){
clearInterval(tt)//这里是tt
}
}
var tt = “”;//这里是全局变量tt
window.onload=function(){
var begans=document.getElementById("began")
begans.onclick=function(){
tt = setInterval(px,50)//这里赋值
function px(){
scrollBy(0,1)
}
}
var stops=document.getElementById("stop")
stops.onclick=function(){
clearInterval(tt)//这里是tt
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题在于 clearInterval的用法;
解决的方法
1、定义外部变量 var tt
2、setInterval(px,50) 修改 tt = setInterval(px,50)
3、clearInterval(begans) 修改 learInterval(tt)
clearInterval 清除的是 setInterval 创建的进程、对象或者是资源。
解决的方法
1、定义外部变量 var tt
2、setInterval(px,50) 修改 tt = setInterval(px,50)
3、clearInterval(begans) 修改 learInterval(tt)
clearInterval 清除的是 setInterval 创建的进程、对象或者是资源。
追问
嗯。。我刚试了下,确实是成功了。。我想问下。。begans和stops是同在window里面。。我clearInterval是清除begans。。应该实现的是清除里面包含的内部函数才行呀,而清除不成功。。。为啥需要给setInterval赋一个变量值。。求解答。。谢谢了。。哎,我这块不是很明白。。
追答
从你的追问看,我建议你看一下setInterval、clearInterval的用法;
有一个误区你需要注意:
在任何的程序代码中.clear的操作,不能清除什么函数、代码之类的。clear的操作没有那么神奇,能去更改你写的函数、代码,如果要更改你写的函数、代码,这个应该属于我们编程的范畴,直接手动按Delete键操作。。哈哈~~~
"clearInterval 清除的是 setInterval 创建的进程、对象或者是资源"
我们实现的过程是
1、页面load完,绑定onclick操作
2、当began被click时,创建一个进程 setInterval ,这个进程就是每隔多长时间执行一次...
3、当这个进程被创建后,进程就一直存在,不管你是否再次click began,都会执行。
4、我们要clear的,是把进程结束掉.
5、反面说,如果clear操作真的可以清空函数,那也没有用,应该进程已经被创建了,就算是你把函数都删除了,都不会影响到这个进程,所以如果我们要停止循环,就必须要想办法结束进程,而不是结束函数。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-12
展开全部
你试一下终止方法 px()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询