老师,多次点击‘开始按钮’使定时器叠加,点‘暂停按钮’很多次怎么也清除不了,这是什么原因

老师,多次点击‘开始按钮’使定时器叠加,点‘暂停按钮’很多次怎么也清除不了,这是什么原因

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1 id="info">0</h1>
    <button id="btn1">开始</button>
    <button id="btn2">暂停</button>


    <script>
        var oInfo = document.getElementById('info');
        var oBtn1 = document.getElementById('btn1');
        var oBtn2 = document.getElementById('btn2');

        var a = 0;
        //全局变量
        var timer;

        oBtn1.onclick = function () {
            //为了防止定时器叠加,我们应该在设置定时器之前清除定时器
            // clearInterval(timer);
            //更改全局变量timer的值为一个定时器实体
            timer =  setInterval(function () {
                oInfo.innerText = ++a;
        },1000)
        };

        oBtn2.onclick = function () {
            clearInterval(timer);
        };
    </script>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-10-17 10:00:17

同学你好, 因为多次点击开始按钮,开启了多个定时器,而暂停按钮点击事件中清除定时器的代码,只能清除最后一个定时器,无法清除所有的定时器,所以效果不对。

建议修改:在每次开始定时器前就清除上一个浏览器,即:去掉代码中的注释

https://img1.sycdn.imooc.com//climg/634cb723095c523814280632.jpg

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师