问答

js如何同时调用同一个函数?

作者:admin 2021-09-10 我要评论

自学的js,准备用js写一个倒计时网页,单个倒计时已经写好了,但是多个倒计时遇到了麻烦。 据我观察,我写的js函数只在一个倒计时中调用了,如何同时多次调用呢...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

自学的js,准备用js写一个倒计时网页,单个倒计时已经写好了,但是多个倒计时遇到了麻烦。

据我观察,我写的js函数只在一个倒计时中调用了,如何同时多次调用呢?

index.html:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>辉夜2</title>
    <style>
        body {
            -webkit-font-smoothing: antialiased;
            font-family: Helvetica Neue, Helvetica, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
            font-size: 85%;
            margin: 0;
        }
        
        h2 {
            font-size: 220%;
            font-weight: 400;
        }
        
        .content {
            position: absolute;
            width: 100%;
            top: 40%;
            transform: translate(0, -50%);
            text-align: center;
        }
        
        .timer {
            font-size: 180%;
            line-height: 1.5;
            margin: 1em 0;
        }
        
        .timer b {
            color: rgb(253, 99, 125);
        }
    </style>
</head>

<body>
    <div class="content">
        <h2>something</h2>
        <div class="timer">
            <b id="d"></b> Days <b id="h"></b> Hours <b id="m"></b> Minutes <b id="s"></b> Seconds
            <script>
                window.onload = function(){
                    timeee("2020-04-26 00:00:00");//第一次调用
                }
            </script>
        </div>
        <div class="timer">
            <b id="d"></b> Days <b id="h"></b> Hours <b id="m"></b> Minutes <b id="s"></b> Seconds
            <script>
                window.onload = function(){
                    timeee("2020-04-26 10:00:00");//第二次调用
                }
            </script>
        </div>
    </div>

    <script src="qaq.js">
    </script>
    
</body>

</html>

qaq.is(原谅我这么命名,我真是小白):

function timeee(tim) {
    timer(tim);
    setInterval("timer("+'"'+tim+'"'+")",1000);
}
//为了实现每秒刷新,写的很难看...

function timer(time) {
    var start = new Date(time).getTime(); 
    var t = start - new Date().getTime();
    var h = ~~(t / 1000 / 60 / 60 % 24);
    if (h < 10) {
        h = "0" + h;
    }
    var m = ~~(t / 1000 / 60 % 60);
    if (m < 10) {
        m = "0" + m;
    }
    var s = ~~(t / 1000 % 60);
    if (s < 10) {
        s = "0" + s;
    }
    document.getElementById('d').innerHTML = ~~(t / 1000 / 60 / 60 / 24);
    document.getElementById('h').innerHTML = h;
    document.getElementById('m').innerHTML = m;
    document.getElementById('s').innerHTML = s;
}

谢谢各位大神!

###

window.onload = xxx;这种赋值的方式,后面的会覆盖前面的,所以永远只有最后一个有效
想要多个都生效,使用addEventListener事件监听即可

window.addEventListener('load',function(){ console.log('load3') })
###

楼上大佬已经说得很好了,补充详细地址: https://developer.mozilla.org...

通过该方法注册多个监听器。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • js如何同时调用同一个函数?

    js如何同时调用同一个函数?

  • vscode 插件问题

    vscode 插件问题

  • vue table

    vue table

  • webpack 如何全局暴露别人的库了?

    webpack 如何全局暴露别人的库了?

腾讯云代理商
海外云服务器