我希望在之前.dot
之后的3秒延迟后为每个.dot
制作动画
这是我使用的代码。但它没有用。
var time = 3000;
$(".dot").each(function() {
setTimeout(function() {
$(this).addClass("animate");
$(this).find(".num").addClass("animate");
}, time)
time += 3000;
});
答案 0 :(得分:5)
this
未引用setTimeout()
中的元素,因此无效。
您可以将参数传递给函数
var time = 3000;
$(".dot").each(function (i) {
setTimeout(function (self) {
self.addClass("animate");
self.find(".num").addClass("animate");
}, (i + 1) * time, $(this));
});
答案 1 :(得分:2)
试试这个
$(".dot").each(function(i) {
$(this).delay(3000 * i).addClass("animate");
$(this).find(".num").delay(3000 * i).addClass("animate");
});