我找不到超时或暂停的方法(尝试并计算到大数字(单击事件。我使用 alert('x'(在 $(arr [i-1](之前停止。在那之后按Enter。但是我想在单击事件后自动暂停约300毫秒。
javascript:
var arr = $("a.farm_icon_b");
var x = document.getElementById("plunder_list").rows;
var images;
for (var i = 0; i < x.length; i++) {
var z = x[i].id;
if (!!z) {
images = document.getElementById(String(z)).getElementsByTagName('img');
for (var j = 0; j < images.length; j++) {
if (!!images) {
if (images[j].src == "https://dspl.innogamescdn.com/8.116/36249/graphic/command/attack.png") {
if (images[j].tooltipText == "1 atak w drodze") {
alert('x');
$(arr[i - 1]).click();
} else if (images[j].tooltipText == "2 ataki w drodze") {
alert('y');
$(arr[i - 1]).click();
}
}
}
}
}
}
您可以使用JavaScript settimeout函数保存或停止按您的要求执行时间。检查此链接以获取更多详细信息。最好的。
setTimeout(function(){
$(arr[i - 1]).click();
}, 3000); // 3000 is stands for 3 second you can change it according to your requirementcode here
重要注释(感谢@thomas突出显示此功能(此功能不会在300ms中"睡觉",它会冻结页面。浏览器只是将300ms的浏览器粘在该循环中,无法做任何事情直到结束。
我认为这是您要寻找的功能。它将帮助您在单击按钮之前将300ms延迟放置。
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
来源: http://userscripts-mirror.org/scripts/review/408779
用法:
pausecomp(300); // Sleep for 300ms
$(arr[i - 1]).click();
免责声明:
理想情况下,基于SettiMeout((解决方案是JavaScript中此类问题的最佳方法(如Akansh所建议(。但是,基于线性的基于循环的方法很可能对这种解决方案不起作用,并且您需要设计一个基于回调函数的解决方案,该解决方案依赖于递延执行。