ホームページ  >  に質問  >  本文

javascript - setInterval()不执行的问题

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>倒计时效果</title>
        <link rel='stylesheet' type='text/css' href='css/cs1.css' />
        <script type='text/javascript' src="js/js1.js"></script>
    </head>
    <body>
        <center>
            <h1>倒计时效果</h1><hr/>
            <form name='formnow'>
                <input type='text' name='dd' size=2 />天
                <input type='text' name='hh' size=2 />小时
                <input type='text' name='mm' size=2 />分
                <input type='text' name='ss' size=2 />秒<br /><br />
                <input type='text' id='txt' name='txt' size=40 value=''/>
            </form>
        </center>
    </body>
</html>

window.onload=function(){
    var time=new Date();//获取当前时间
    var yer=time.getFullYear();//年
    var month=time.getMonth()+1;//月
    var day=time.getDate();//天
    var h=time.getHours();//时
    var m=time.getMinutes();//分
    var s=time.getSeconds();//秒
    //var mil=time.getMilliseconds();//毫秒
    var ownDate=yer+'年'+month+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
    
    function a(){
        document.formnow.txt.value=ownDate;
    }
    window.setInterval(a,1000);
}

//为什么window.setInterval(a,1000);只执行一次后就在也不执行呢????????????????

迷茫迷茫2719日前542

全員に返信(2)返信します

  • 天蓬老师

    天蓬老师2017-04-10 16:09:05

    因为你把setInterval()写在window.onload函数里了,而window.onload只会执行一次,所以它里面的函数,也只会执行一次。

    另外补充一下,一般调用setInterval()的时候,这样写:

    setInterval("time()",1000);

    前面不用加window

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:09:05

    window.onload = function() {
        setInterval(function() {
            var time=new Date();//获取当前时间
            var yer=time.getFullYear();//年
            var month=time.getMonth()+1;//月
            var day=time.getDate();//天
            var h=time.getHours();//时
            var m=time.getMinutes();//分
            var s=time.getSeconds();//秒
            //var mil=time.getMilliseconds();//毫秒
            var ownDate=yer+'年'+month+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
            document.formnow.txt.value=ownDate;
        }, 500);
    }

    变量声明全部包裹在a方法里即可。
    提示两点:

    1. setInterval尽量使用匿名方法

    2. 这种现实当前时间的,一般用半秒执行一次,这样能避免打开网页不在整秒的问题

    返事
    0
  • キャンセル返事