我无法找到超时或暂停(尝试并计算到大数字)点击事件的方法。我使用 alert('x')在 $(arr [i-1])之前停止。点击(); 然后我有之后按下输入。但我想在点击事件后自动暂停约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();
}
}
}
}
}
}
答案 0 :(得分:0)
您可以使用javascript setTimeout函数来保存或停止脚本按照您的要求执行一段时间。查看此Link了解更多详情。一切顺利。
setTimeout(function(){
$(arr[i - 1]).click();
}, 3000); // 3000 is stands for 3 second you can change it according to your requirementcode here
答案 1 :(得分:-1)
重要提示(感谢@Thomas突出显示此功能)此功能不会睡眠&#34; 300毫秒,它冻结了页面。浏览器只是停留在该循环中300毫秒,并且不能做任何事情,直到结束。
我认为这是您正在寻找的功能。它会帮助你在按钮点击之前延迟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所建议的)。但是,基于线性for循环的方法很可能不适用于此类解决方案,您需要设计一个基于回调函数的解决方案,该解决方案依赖于延迟执行。