Javascript 将循环添加到setTimeout

Javascript 将循环添加到setTimeout,javascript,jquery,Javascript,Jquery,JS: 使用setInterval代替setTimeout。前者设置在某个时间间隔调用的计时器,而后者设置仅调用一次的计时器 另外,每次修改DOM时都要调用随机化代码。一种简单的方法是将其包含在间隔函数中,如下所示: var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; randClass = house[Math.floor(Math.random() * house.leng

JS:


使用
setInterval
代替
setTimeout
。前者设置在某个时间间隔调用的计时器,而后者设置仅调用一次的计时器

另外,每次修改DOM时都要调用随机化代码。一种简单的方法是将其包含在间隔函数中,如下所示:

var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
randClass = house[Math.floor(Math.random() * house.length)];
setInterval(函数(){
var house=[‘一’、‘二’、‘三’、‘四’、‘五’、‘六’、‘七’、‘八’、‘九’];
var randClass=house[Math.floor(Math.random()*house.length)];
$('houses div:last')。在('')之后;
}, 2000);

使用
setInterval
而不是
setTimeout
。前者设置在某个时间间隔调用的计时器,而后者设置仅调用一次的计时器

另外,每次修改DOM时都要调用随机化代码。一种简单的方法是将其包含在间隔函数中,如下所示:

var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
randClass = house[Math.floor(Math.random() * house.length)];
setInterval(函数(){
var house=[‘一’、‘二’、‘三’、‘四’、‘五’、‘六’、‘七’、‘八’、‘九’];
var randClass=house[Math.floor(Math.random()*house.length)];
$('houses div:last')。在('')之后;
}, 2000);
您需要使用:

setInterval(function() {
    var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    var randClass = house[Math.floor(Math.random() * house.length)];

    $('#houses div:last').after('<div class="item current-last '+ randClass +'"></div>');
}, 2000);
这将解决“只执行一次”的问题

至于想要获得不同的randClass值,您需要管理它,在间隔之间修改randClass的值,以适合您的目的。 正如@Lanello所提议的,你可以将其随机化。或者增加它。无论您的应用程序逻辑要求什么。

您需要使用:

setInterval(function() {
    var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    var randClass = house[Math.floor(Math.random() * house.length)];

    $('#houses div:last').after('<div class="item current-last '+ randClass +'"></div>');
}, 2000);
这将解决“只执行一次”的问题

至于想要获得不同的randClass值,您需要管理它,在间隔之间修改randClass的值,以适合您的目的。
正如@Lanello所提议的,你可以将其随机化。或者增加它。无论您的应用程序逻辑要求什么。

您只需编写一个

setInterval(//insert your function and interval here)

并在SetTimeout内调用它,而不是在SetTimeout内写入它,当然您可以在SetTimeout之前设置randClass值,然后它的值永远不会更改。

您只需编写一个

setInterval(//insert your function and interval here)
并在SetTimeout内调用它,而不是在SetTimeout内写入它,当然您可以在SetTimeout之前设置randClass值,然后它的值永远不会更改。

尝试以下方法:

function RandomizeClass()
var intv=setInterval(test,2000);
//您还可以清除间隔
//通过使用clearInterval(intv);
功能测试(){
$('houses div:last')。在('')之后;
}
试试这个:

function RandomizeClass()
var intv=setInterval(test,2000);
//您还可以清除间隔
//通过使用clearInterval(intv);
功能测试(){
$('houses div:last')。在('')之后;
}

是的,它可以工作。但获得相同的randClass值。我想改变每一个设定间隔。是的,它工作。但获得相同的randClass值。我想改变每一个设定间隔。是的,它工作。但获得相同的randClass值。我想改变每一个setInterval。好吧,你应该确保randClass值在两个间隔之间改变。randClass是什么?它来自哪里?也许你可以在你的问题中添加一些代码来澄清这个问题?是的,它是有效的。但获得相同的randClass值。我想改变每一个setInterval。好吧,你应该确保randClass值在两个间隔之间改变。randClass是什么?它来自哪里?也许你可以在你的问题中添加一些代码来澄清这一点?