最近我遇到了一个问题:
点击btn就增加一个定时器,点击btn1就clear定时器。
但是我发现当多次点击btn增加定时器后,虽然timer 变量也在外面,那么btn1根本清除不了,虽然我打印出来的timer也是最后一个。
1 <body> 2 <button id="btn">aa</button> 3 <button id="btn1">cancel</button> 4 <script> 5 var timer; //虽然timer在外面 6 btn.onclick = function () { //点击后增加一个定时器 7 timer = setInterval(function () { 8 console.log(timer) //我连续点击多次btn后,每次都打印最后一个定时器 9 }, 500) 10 } 11 btn1.onclick = function () { 12 console.log("timer" + timer)//虽然这里显示的是最后一个定时器, 13 clearInterval(timer) //但是无法清理掉最后一个定时器。点击很多次也不行。 14 } 15 </script> 16 </body>
于是,我在每次开启定时器的时候都clearInteval(timer)就解决了这个问题:
可能是定时器很多导致了定时器混乱???我不知道