我试图多次点击一个按钮。每次单击该按钮时,它会加载1秒钟,然后重新出现并再次单击。我想点击此按钮5次。
for(i=0;i<5;i++)
$('.class').click();
上述代码只执行一次。
即使是这段代码,也只执行一次点击。
for(i=0;i<5;i++)
setTimeout(() => $('.class').click(),2000);
如果我手动执行该步骤,即如果我输入$('。class')。单击()到控制台五次,它可以工作。知道为什么?
答案 0 :(得分:3)
将延迟乘以i
,因为for循环不会等待执行 setTimeout
回调。
for(i = 1;i <= 5; i++)
setTimeout(() => $('.class').click(),i * 2000);
另一种方法是使用 setInterval
方法以及 clearInterval
。
// variable for count
var i = 0;
// reference for clearing interval
var inter = setInterval(()=>{
// trigger click event
$('.class').click();
// increment and check value reached to `5`
// if `5` then clear the interval
if(++i == 5) clearInterval(inter);
},2000);
答案 1 :(得分:0)
如果您在按钮上记录click事件,即使使用您的第一个示例
,也会单击该事件5次
$('.button').on('click', function () {
console.log('clicked')
})
for(i=0;i<5;i++)
$('.button').click();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="button"></button>
&#13;