图像循环 - 重新循环

时间:2014-07-19 16:15:44

标签: javascript jquery

我有一个在一定范围内的特定时间随机的功能。我无法重新启动我的功能或将计数器恢复为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),但输出错误并将图像附加加倍。谢谢你的帮助。

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);