麻烦老师检查一哈

来源:1-21 编程练习

__憨人

2020-06-10 10:52:13

<!DOCTYPE html>
<html>
<head lang="en">
    <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 delBtn = document.getElementsByTagName("input")[0], 
        cancelBtn = document.getElementsByTagName("input")[1],
        text = document.getElementsByTagName("div")[0], 
        timer;
    delBtn.onclick = function(){
        var delText = function(){
            text.innerHTML = "";
        }
        timer = setTimeout(delText,3000);
    }
    cancelBtn.onclick = function(){
        clearTimeout(timer);
    }
</script>
</body>
</html>


写回答

2回答

好帮手慕粉

2020-06-16

‘weixin_慕田峪7033080’同学你好,同学是说这样吗:

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

如果这样的话,delText()这个函数是没有被调用执行的,只是被声明定义了而已,我们可以试着打印个1看看:

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

在点击了删除按钮以后,这个1没有被打印出来,验证了这个函数没有被执行。

如果放在函数外面,是定义了delText()这个函数后,又设置了一个定时器,当点击删除按钮3秒后,再去执行delText()这个函数:

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

在点击删除按钮3秒后(不点击取消按钮的情况下),控制台的1也被输出:

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

同学再理解下。

另外,同学以后再有问题,建议同学新建一个问答进行提问哦,这样即便于同学后期的复习与整体,老师也能更快的看到同学的问题。

祝学习 愉快~

0

好帮手慕粉

2020-06-10

同学你好,代码实现的是正确的。继续加油,祝学习愉快~

0
heixin_慕田峪7033080
h timer = setTimeout(delText,3000);这个为什么设置在函数外面而不是里面呢?
h020-06-16
共1条回复

0 学习 · 40143 问题

查看课程