老师我代码有bug 请老师协助下
来源:3-13 编程练习
菜鸟瑞
2021-05-08 17:24:11
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Document</title>
<style>
div {
width: 300px;
margin: 20px 0;
line-height: 30px;
background: yellowgreen;
}
</style>
</head>
<body>
<button id="start">开始</button>
<button id="stop">停止</button>
<button id="clear">重置</button>
<div id="box"></div>
<script>
const startBtn = document.getElementById('start')
const stopBtn = document.getElementById('stop')
const box = document.getElementById('box')
const clear = document.getElementById('clear')
var show = {
content: "\tHello World",
timer: null,
start: function () {
// 在此补充代码
startBtn.addEventListener('click',()=>{
this.timer=setInterval(() => {
box.innerText+=this.content
console.log(startBtn);
}, 1000);
},false)
},
stop: function () {
// 在此补充代码
stopBtn.addEventListener('click',()=>{
clearInterval(this.timer)
},false)
},
clearText:function(){
clear.addEventListener('click',()=>{
box.innerText=''
},false)
}
}
// 在此补充代码
show.start();
show.stop();
show.clearText();
</script>
</body>
</html>
问题描述:
老师我这段代码多次点击之后 出现bug 是否要添加节流锁
1回答
同学你好,代码中,每点击一次“开始”按钮,就会开启一个定时器,由于定时器累加,导致效果不对:
可以添加节流锁,调整如下:
或者可以在点击开始按钮时,将定时器先清除再开启:
祝学习愉快!
相似问题