找不到正确的超时或间隔方法



我找不到超时或暂停的方法(尝试并计算到大数字(单击事件。我使用 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所建议(。但是,基于线性的基于循环的方法很可能对这种解决方案不起作用,并且您需要设计一个基于回调函数的解决方案,该解决方案依赖于递延执行。

相关内容

  • 没有找到相关文章

最新更新