JavaScript代码执行延迟

时间:2017-11-30 17:56:37

标签: javascript jquery html

function append(what) {
    $("#drawer").append(what);
}

function outerHtml(o) {
    return $("<div />").append($(o).clone()).html();
}

var allPixel = [];

$(".pix").each(function() {
    allPixel.push(outerHtml($(this)));
});

$("#drawer").empty();

var index;

for (index = 0; index < allPixel.length; index++) {
    pixel = allPixel[index];
    setTimeout(append(pixel), 100);
}

我有一个容器(#drawer),里面装满了很多div元素。在此函数中,每个div元素的HTML都单独保存在一个数组中。当它完成时,div元素被清除。

在数组allPixel中现在都是div元素。我想要它,以便每个div元素被添加到#drawer,延迟为100毫秒。

问题:

如果我运行此功能没有任何反应(div不会消失/出现)。我做错了什么?

如果有任何不清楚的地方,请随时告诉我,我会编辑我的问题。

问题已解决...查看实际操作:https://wiese2.lima-city.de/test/

1 个答案:

答案 0 :(得分:2)

您正在调用立即调用的方法并将其返回值(undefined)传递给setTimeout

当计时器到期为setTimeout方法时,您可以设置要传递给append函数的其他参数。

使用

setTimeout(append, 100 * (i + 1), pixel);

此外,您还需要根据元素索引

增加计时器