简体   繁体   English

1页上的多个JavaScript计时器

[英]multiple javascript timers on 1 page

I hope you guys can help me out as I have little knowledge on javascripts. 我希望你们能帮助我,因为我对javascript不太了解。 I've been using the same timer over and over again and it always works like a charm. 我一遍又一遍地使用相同的计时器,它始终像一种魅力。 Although when I'm trying to add the same timer again further down my page only 1 works. 虽然当我尝试再次在页面下方添加同一计时器时,只有1个有效。

 function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10) seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; display.textContent = minutes + ":" + seconds; if (--timer < 0) { timer = duration; } }, 1000); } window.onload = function () { var fiveMinutes = 60 * 10.1, display = document.querySelector('.time'); startTimer(fiveMinutes, display); }; 
 <span class="time">10:07</span> <br/> <br/> <br/> <span class="time">10:07</span> 

I have already tried adding a second script for a different class, but unfortunately no working results... 我已经尝试为另一个类添加第二个脚本,但是不幸的是没有任何结果。

Is anyone able to help me out? 有人可以帮助我吗? JSfiddle prefered since I've little knowledge on javascript! JSfiddle首选,因为我对javascript不太了解! Thanks in advance! 提前致谢!

Use querySelectorAll 使用querySelectorAll

 function startTimer(duration, displays) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10) seconds = parseInt(timer % 60, 10); minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; Array.prototype.forEach.call(displays, function(display) { display.textContent = minutes + ":" + seconds; }); if (--timer < 0) { timer = duration; } }, 1000); } window.onload = function () { var fiveMinutes = 60 * 10.1, displays = document.querySelectorAll('.time'); startTimer(fiveMinutes, displays); }; 
 <span class="time">10:07</span> <br/> <br/> <br/> <span class="time">10:07</span> 

function startTimer(duration, display, display2) {
    var timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10)
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;
        display2.textContent = display.textContent;
        if (--timer < 0) {
            timer = duration;
        }
    }, 1000);
}




 window.onload = function () {
    var fiveMinutes = 60 * 10.1,
        display = document.querySelector('.time');
        display2 = document.querySelector('.time2');
    startTimer(fiveMinutes, display ,display2);
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM