我有以下代码:
$('.action-button').each(function(i, obj) { $(obj).trigger('click') });
我想在循环的每次迭代之间放置一个延迟,最好是 5 秒的延迟。我该怎么做?是否可以使用 setTimeout?
我有以下代码:
$('.action-button').each(function(i, obj) { $(obj).trigger('click') });
我想在循环的每次迭代之间放置一个延迟,最好是 5 秒的延迟。我该怎么做?是否可以使用 setTimeout?
是的,它应该与setTimeout
尝试这个
$('.action-button').each(function(i, obj) {
setTimeout(function () {
$(obj).trigger('click')
},500);
});
以下应该工作。
$('.action-button').each(function(i, obj) {
$(obj).delay(5000 * i).click();
});
jQuery 的.each()
,当给定一个参数时,例如i
here,将递增每个循环。
因此,您可以使用它来乘以原始时间 * i,这将导致第一次点击在 5 秒后被调用,下一次在 10 秒后被调用。
如果您希望第一个元素也被延迟,您应该添加 1,i
因为第一个索引始终为 0。
$('.action-button').each(function(i, obj) {
$(obj).delay(5000 * (i + 1)).click();
});
尝试这个
$('.action-button').each(function(i, obj)
{
$(obj).delay(i*500).trigger('click')
});