0

我有以下代码:

$('.action-button').each(function(i, obj) { $(obj).trigger('click') });

我想在循环的每次迭代之间放置一个延迟,最好是 5 秒的延迟。我该怎么做?是否可以使用 setTimeout?

4

3 回答 3

1

是的,它应该与setTimeout

尝试这个

$('.action-button').each(function(i, obj) { 
   setTimeout(function () {
      $(obj).trigger('click')
   },500);
});
于 2013-10-30T12:00:28.363 回答
1

以下应该工作。

$('.action-button').each(function(i, obj) {
    $(obj).delay(5000 * i).click();
});

jQuery 的.each(),当给定一个参数时,例如ihere,将递增每个循环。

因此,您可以使用它来乘以原始时间 * i,这将导致第一次点击在 5 秒后被调用,下一次在 10 秒后被调用。

如果您希望第一个元素也被延迟,您应该添加 1,i因为第一个索引始终为 0。

$('.action-button').each(function(i, obj) {
    $(obj).delay(5000 * (i + 1)).click();
});
于 2013-10-30T12:04:44.550 回答
0

尝试这个

$('.action-button').each(function(i, obj) 
    { 

    $(obj).delay(i*500).trigger('click') 


    });
于 2013-10-30T11:54:23.673 回答