求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>
展开
 我来答
百度网友629278b
2012-11-12 · TA获得超过201个赞
知道小有建树答主
回答量:277
采纳率:100%
帮助的人:113万
展开全部
首先,楼上说的比较对,应该设置全局变量 而不是局部变量。

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
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iostream210
2012-11-12 · TA获得超过912个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:385万
展开全部
问题在于 clearInterval的用法;
解决的方法
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()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式