老师看看我的为什么点击删除后马上点击取消删除,他还是删除了
来源:1-21 编程练习
RahodJoe
2019-10-22 11:03:10
是因为已经执行了我自己设定的deleteContents函数,不管有没有clearTimeOut,相当于已经调用了一次deleteContents,所以只要点击了取消,就一定会删除是吗?这一题应该不能自己定义函数哈,直接把innerHTML为空写进setTimeOut是吗?
<!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 btnDelete=document.getElementsByTagName("input")[0]; var btnCancelDelete=document.getElementsByTagName("input")[1]; var divContent=document.getElementsByTagName("div")[0]; function deleteContents(){ divContent.innerHTML=""; } btnDelete.onclick=function(){ setTimeout(deleteContents,3000); } btnCancelDelete.onclick=function(){ var idSetTimeOut=setTimeout(deleteContents,3000); clearTimeout(idSetTimeOut); } </script> </body> </html>
1回答
同学你好,
理解的有问题,可以自己定义函数,主要是定时器的问题。
用两次setTimeout,就是两个不同的定时器,所以在第二个点击事件中取消的是第二个定时器,第一个定时器并没有清除,仍然会删除。参考修改:
可以修改测试下,祝学习愉快!
欢迎采纳~
相似问题
回答 3
回答 1