老师,请教两个问题

来源: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回答

好帮手慕言

2019-06-05

同学你好,

1,同学第一个问题报错原因是因为第三个变量后面使用的是分号。一次声明多个变量时,变量之间是使用逗号隔开。同学直接写dels=null,前面没有var也是可以使用的,这样写是全局变量。

http://img.mukewang.com/climg/5cf773f30001ea2705540173.jpg

2、setTimeout方法返回一个id值。清除定时器 就要定义一个变量去接收他返回的id,然后清除这个id就可以了。

https://class.imooc.com/lesson/778#mid=19581在这一节的5分15秒时老师有讲到。

如果帮助到了你,欢迎采纳,祝学习愉快。


0

0 学习 · 40143 问题

查看课程