js计时器setInterval()只执行一次

今天做了一个倒计时的案例,代码如下:

function clock() {
                var nowTime = new Date();
                var endTime = new Date("2019/5/23 14:51:00");
                var now = nowTime.getTime();
                var end = endTime.getTime();
                var time = end - now;
                var seconds = time/1000;
                if (seconds > 0){
                    var hour = Math.floor(seconds/3600);
                    var minute = Math.floor(seconds%3600 / 60);
                    var second = Math.floor(seconds%60);
                    my$("box").innerText = bu(hour)+":"+bu(minute)+":"+bu(second);
                }else{
                    my$("box").innerText = "下课了!";
                    clearInterval(timeId);
                }
            }
            clock();
            var timeId = setInterval(clock(),1000);

这段代码输出的时候函数只执行了一次,计时器的效果没有,经过几次的检查发现是计时器中参数问题,var timeId = setInterval(clock(),1000) 中第一个参数此时添加的clock()的值是函数的返回值,因为clock()中没有返回值,所以才出问题,改为var timeId = setInterval(clock,1000) 就解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值