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/
答案 0 :(得分:2)
您正在调用立即调用的方法并将其返回值(undefined
)传递给setTimeout
。
当计时器到期为setTimeout
方法时,您可以设置要传递给append
函数的其他参数。
使用
setTimeout(append, 100 * (i + 1), pixel);
此外,您还需要根据元素索引
增加计时器