我有一个在一定范围内的特定时间随机的功能。我无法重新启动我的功能或将计数器恢复为1,以便在范围之后继续循环。
这是我的代码:
var i = 1;
function imgLoop() {
setTimeout(function () {
var rand = makeUniqueRandom();
j = rand;
img4 = '<div id="deck" class="center" >'
img4 += '<img class="img_deck" src="http://example.com/images/' + j + '.jpg" />';
img4 += '</div">'
$(img4).hide().appendTo("#img_brd").fadeIn('slow');
i++;
setTimeout(function () {
if (i < 30) {
$("#img_deck_border").remove().toArray();
imgLoop();
}
}, 2000)
}, 100)
}
imgLoop();
我尝试将参数传递给imgLoop()
作为imgLoop(i)
然后imgLoop(1)
,但输出错误并将图像附加加倍。谢谢你的帮助。
答案 0 :(得分:0)
看看this fiddle。这是没有图像的代码,它只显示了如何更改循环的迭代次数。希望它会对你有所帮助。
var i = 1;
var amount = 30;
var isRunning = false;
function imgLoop() {
isRunning = true;
setTimeout(function () {
// here should be your work with images
$("#output").text($("#output").text() + " " + i);
i++;
setTimeout(function () {
if (i < amount) {
imgLoop();
}
else {
isRunning = false;
alert("I'm done");
}
}, 200)
}, 100)
}
function addIterations() {
amount += 10;
if (!isRunning)
imgLoop();
}
function start() {
$("#div-start").remove();
imgLoop();
}
$("#div-start").on("click", start);
$("#div-add").on("click", addIterations);