Javascript计数器只能运行一次

时间:2015-05-26 16:51:00

标签: javascript timer

我这里有一个jsfiddle - http://jsfiddle.net/5z2vu47a/

这是一个简单的计时器,应该更改取自和数组

的文本

计时器只能工作一次。

为什么计时器无法继续工作。

var name_arr = ['learn', 'product', 'buying', 'selling', 'marketing', 'managing', ];
var counter = 0;

function names(){
    alert(counter);
    $('.text p').text(name_arr[counter]);
    counter++;
    alert(counter);
}

setTimeout(names, 1000);

3 个答案:

答案 0 :(得分:2)

您需要使用setInterval

setInterval(names, 1000);

names功能中,还要检查计数器值是否不应超过name_arr.length

function names(){
    alert(counter);
    $('.text p').text(name_arr[counter]);
    if(counter<(name_arr.length-1))
     counter++;
    else
     counter=0;
    alert(counter);
}

答案 1 :(得分:1)

在指定的延迟后,

setTimeout仅运行一次 如MDN WindowTimers.setTimeout()

中所述
  

在指定的延迟后调用函数或执行代码段。

setInterval以间隔运行,间隔指定的延迟。 如MDN WindowTimers.setInterval()

中所述
  

重复调用函数或执行代码片段,每次调用该函数之间都有固定的时间延迟。返回intervalID。

所以,setInterval将永远运行,除非你用clearInterval打破它。

function doStuff() {
    // Doing ome nice and fancy stuff here...
}

var interval = setInterval(doStuff, 1000);

// this will stop the interval loop
clearInterval(interval);

答案 2 :(得分:0)

您使用setTimeout,等待1秒然后执行您的功能。

您想要setInterval