我查看了许多关于 setInterval
的帖子,但没有一个提供我正在寻找的答案或我正在努力实现的目标。
我正在寻找一个只需点击 2 次的 setInterval
函数。第一次点击与第二次点击相隔 2 秒。它只运行一次我目前拥有的是一种使用两个函数的解决方法,它有效..但我宁愿将它们放在一个函数中而不是两个函数中。
第一次点击是在一秒内立即运行(1000)它关闭打开的模式。然后下一次单击是在 2 秒(2000)后删除一个克隆。以下是我目前在 $each
中使用的内容。感谢您的帮助。
$.each(deleteCard, function( i, person ) {
setTimeout(function() {
$("#"+person.id).find('.close-modal').click();
}, 1000);
setTimeout(function() {
$("#"+person.id).find('.card').remove();
}, 2000);
});
答案 0 :(得分:1)
我认为 setInterval
在这里没有帮助。只重复两次是一个糟糕的选择(您的原始代码也有不规则延迟,setInterval
做得不好)。
我会使用 Promise 并编写一个等待函数作为通用实用程序,您可以将其隐藏在某个帮助文件中:
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
$.each(deleteCard, async function (i, person) {
await wait(1000);
$("#" + person.id).find('.close-modal').click();
await wait(1000);
$("#" + person.id).find('.card').remove();
});