老师,请教两个问题
来源:1-21 编程练习
小鲜花
2019-06-05 14:18:18
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>定时器</title>
<style type="text/css">
div{width:400px;height:120px;margin-top:50px;border:2px solid gray;padding:10px;}
</style>
</head>
<body>
<input type="button" value="删除">
<input type="button" value="取消删除">
<div>点击"删除"按钮后,里面的内容将在3秒钟后消失;<br/><br/>如点击了"删除"后又不想删除内容,请在点击"删除"按钮3秒之内点击"取消删除"按钮即可</div>
<script type="text/javascript">
//补充代码
var btn1=document.getElementsByTagName("input")[0],
btn2=document.getElementsByTagName("input")[1],
div=document.getElementsByTagName("div")[0];
dels=null;
btn1.onclick=function(){
dels=setTimeout(function(){
div.innerHTML="";
},3000)
}
btn2.onclick=function(){
clearTimeout(dels);
}
</script>
</body>
</html>
问题1:定义全局变量dels的时候,只定义dels报错,为啥改成dels=null的时候就对了?
问题2:清除定时的时候,clearTimeout()括号里不用一个变量(clearTimeout(dels)),而是用clearTimeout(setTimeout(function(){div.innerHTML="";},3000))这样,为啥会报错
1回答
同学你好,
1,同学第一个问题报错原因是因为第三个变量后面使用的是分号。一次声明多个变量时,变量之间是使用逗号隔开。同学直接写dels=null,前面没有var也是可以使用的,这样写是全局变量。
2、setTimeout方法返回一个id值。清除定时器 就要定义一个变量去接收他返回的id,然后清除这个id就可以了。
https://class.imooc.com/lesson/778#mid=19581在这一节的5分15秒时老师有讲到。
如果帮助到了你,欢迎采纳,祝学习愉快。
相似问题