当调用ctdwnDecCall()时,它显示8,但只有一次,它应该每秒显示一次,这个脚本在页面的头部
var ctdwnDecInt;
function ctdwnDecCall()
{
ctdwnDecInt=setInterval(ctdwnDec(),1000);
}
function ctdwnDec()
{
document.write("8");
}
您正在调用 ctdwnDec
函数,而不是按间隔进行设置。您需要删除()
:
var ctdwnDecInt;
function ctdwnDecCall() {
ctdwnDecInt=setInterval(ctdwnDec ,1000);
// no parens in there ^
}
function ctdwnDec() {
document.write("8");
}
我可能会写这样的东西(JSBIN DEMO)
var Timer = function Timer(elem, seconds) {
elem = elem;
seconds = seconds || 10;
var interval = null;
function render() {
elem.innerHTML = seconds;
}
function start() {
if (!interval) {
interval = setInterval(update, 1000);
}
}
function update() {
seconds = seconds - 1;
render();
if (seconds === 0) {
stop();
}
}
function stop() {
clearInterval(interval);
}
this.start = start;
this.stop = stop;
}
使用现在变得简单模式
.HTML
在这里,我们设置了几个计时器并使用类timer
(您可以选择任何您想要的内容)
<span class="timer"></span>
<span class="timer"></span>
<span class="timer"></span>
JavaScript
按类timer
(或您选择的任何内容)查找所有计时器,并为每个计时器初始化一个新的Timer
对象。在此示例中,我们将每个计时器设置为具有 8
秒倒计时。
var timers = document.getElementsByClassName("timer");
for (var i=0, len=timers.length; i<len; i++) {
var t = new Timer(timers[i], 8);
t.start();
}