老师,为什么我删除按钮点3次,取消删除也点了3次,最后div里面的内容还是会被清空

来源:1-21 编程练习

慕设计3128335

2020-07-21 21:20:14

<!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">

       //补充代码

       let btn1 = document.getElementsByTagName("input")[0],

       btn2 = document.getElementsByTagName("input")[1],

       div = document.getElementsByTagName("div")[0]

       let times;

       btn1.onclick = function(){

            times = setInterval(function(){

                div.innerHTML = "";

            },3000)

       }

       btn2.onclick = function(){

            clearTimeout(times);

       }

    </script>

</body>

</html>


写回答

1回答

好帮手慕夭夭

2020-07-22

同学你好,连续点击三次删除,会创建3个定时器,分别为1,2,3,那么点击取消定时器,只能取消最后一次的。同学可以按照如下进行测试,帮助自己去理解:

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

分别输出一下,创建的定时器,可以删除的定时器,然后定时器里面输出一点内容,看看最后执行了什么。如下,点击三次删除,三次取消。创建了三个定时器,1,2,3。定时器3被取消了3次,等待一会,一直输出test则表明,前两个定时器并不会被取消。

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

这里可以特殊记一下。另外,实际测试时,只点击删除一次,取消一次就可以。代码是没有问题的。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程