我有以下代码:
$('.action-button').each(function(i, obj) { $(obj).trigger('click') });
我想在循环的每次迭代之间加一个延迟,理想情况下是5秒的延迟。我该怎么办?是否可以使用setTimeout?
答案 0 :(得分:1)
是的,它应该与setTimeout
试试这个
$('.action-button').each(function(i, obj) {
setTimeout(function () {
$(obj).trigger('click')
},500);
});
答案 1 :(得分:1)
以下情况应该有效。
$('.action-button').each(function(i, obj) {
$(obj).delay(5000 * i).click();
});
jQuery的.each()
,当给出诸如i
这样的参数时,会增加每个循环。
因此你可以使用它来乘以原始时间* i,这将导致第一次点击在5秒后被调用,下一次点击在10秒后被调用。
如果您希望第一个元素也被延迟,则应将{1}添加1,因为第一个元素始终为0。
i
答案 2 :(得分:0)
试试这个
$('.action-button').each(function(i, obj)
{
$(obj).delay(i*500).trigger('click')
});