Javascript 在jQuery中的每个()函数之后进行延迟

Javascript 在jQuery中的每个()函数之后进行延迟,javascript,jquery,Javascript,Jquery,我想在上一个.dot之后的3秒延迟后为每个.dot设置动画 这是我使用的代码。但它不起作用 var time = 3000; $(".dot").each(function() { setTimeout(function() { $(this).addClass("animate"); $(this).find(".num").addClass("animate"); }, time) time += 3000; }); 此未引用中的元素,因此它不起作用 可以将参

我想在上一个
.dot
之后的3秒延迟后为每个
.dot
设置动画 这是我使用的代码。但它不起作用

var time = 3000;

$(".dot").each(function() {
  setTimeout(function() {
    $(this).addClass("animate");
    $(this).find(".num").addClass("animate");
  }, time)
  time += 3000;
});

未引用中的元素,因此它不起作用

可以将参数传递给函数

var time = 3000;
$(".dot").each(function (i) {
    setTimeout(function (self) {
        self.addClass("animate");
        self.find(".num").addClass("animate");
    }, (i + 1) * time, $(this));
});
试试这个

$(".dot").each(function(i) {
  $(this).delay(3000 * i).addClass("animate");
  $(this).find(".num").delay(3000 * i).addClass("animate");  
});

为了保持一致性,还需要添加标记(HTML、CSS)