zoukankan      html  css  js  c++  java
  • 关于js里cleartimeout的疑惑

    1.发现这样写连时间都不会有

    <script>
    var flag = 0;
    function startTime(){
        clearTimeout(t);
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        t=setTimeout(function(){startTime()},1000);
        
    }
    function checkTime(i){
        if (i<10){
            i="0" + i;
        }
        return i;
    }
    </script>

    2.而这样子的话会停,但是会显示时间

    function startTime(){
        
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        clearTimeout(t);
        t=setTimeout(function(){startTime()},1000);
        
    }

    3.发现这样子的话时间不会停但是,cleartimeout会执行

    <script>
    var flag = 0;
    function startTime(){
        
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        t=setTimeout(function(){startTime()},1000);
    }
    function checkTime(i){
        if (i<10){
            i="0" + i;
            if (flag > 2 )
            clearTimeout(t);
            flag += 1;
        }
        return i;
    }
    </script>

    4.结合3,这样写的话会停止执行代码

    <script>
    var flag = 0;
    function startTime(){
        t=setTimeout(function(){startTime()},1000);
        var today=new Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds();// 在小于10的数字前加一个‘0’
        m=checkTime(m);
        s=checkTime(s);
        document.getElementById('txt').innerHTML=h+":"+m+":"+s;
        
    }

    以上问题很是疑惑,希望能随着知识的增加而解决吧

  • 相关阅读:
    递延收益
    企业收到政府补助的核算方法
    总额法
    发行股票手续费为什么冲减资本公积
    溢价发行
    融资筹资的区别是什么
    资本公积转增股本
    认股权证和股票期权有什么区别?
    postgresql 锁表查询语句
    生成不带版本的jar包 不影响deploy
  • 原文地址:https://www.cnblogs.com/WildSky/p/11025211.html
Copyright © 2011-2022 走看看