JS:
setTimeout(function() {
$('#houses div:last').after('<div class="item current-last '+ randClass +'"></div>');
}, 2000);
但是曾经一次。我想要一个循环。我该如何解决?
var house = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
randClass = house[Math.floor(Math.random() * house.length)];
答案 0 :(得分:3)
使用setInterval
代替setTimeout
。前者设置一个间隔调用的计时器,而后者设置一个只调用一次的计时器。
此外,每次修改DOM时都要调用随机化代码。一种简单的方法是将它包含在区间函数中,如下所示:
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);
答案 1 :(得分:2)
您需要使用:
setInterval(//insert your function and interval here)
这将解决'仅执行一次'问题。
至于想要获得不同的randClass值,你需要管理它,做一些修改randClass值,间隔之间的东西,以满足你的目的。 正如@Lanello建议的那样,你可以将它随机化。或者可以增加它。无论你的应用程序逻辑是什么。
答案 2 :(得分:0)
function RandomizeClass()
并在SetTimeout中调用它,而不是将其写入内部,当然你在setTimeout之前设置了randClass值,然后它的值永远不会改变。
答案 3 :(得分:0)
试试这个:
var intv = setInterval(test, 2000);
// you can also clear the interval
// by use clearInterval(intv);
function test(){
$('#houses div:last').after('<div class="item current-last '+ randClass +'"></div>');
}