javascript - jQuery 无法设置超时

标签 javascript jquery html

所以我有一个包含两列的数据表,一列包含 anchor ,另一列包含图像。

这就是我需要做的。单击第一个链接,在新选项卡中打开它。等待一段时间,关闭选项卡,继续下一个。这就是我到目前为止所拥有的。

我对 javascript 和 jQuery 东西不是很陌生。

这样我就可以获取 anchor 列表并单击我想要的任何人,问题是它在新窗口中打开并且使用 .attr('target', '_blank') 没有为我工作。

$("#tables").find('a').get(0).click()

单击 anchor 后, anchor 将在页面加载时消失,因此我只需要知道第一个 anchor 在哪里。这就是我所需要的。

点击 anchor 0,等待 30 秒关闭打开的选项卡,刷新,重复,直到找不到 anchor 。

这就是我迄今为止正在研究的内容。

function clickAds() {
if ($("#tables").find('a').length > 0) {    
    $("#tables").find('a').get(0).click();  
    setTimeout(clickAds() 35000);

    location.reload()
   };

  clickAds()

我已经编辑了我的问题,现在有代码可以一遍又一遍地单击相同的链接,直到 chrome 崩溃。我无法超时工作!有人知道为什么吗?

最佳答案

更改您的代码:

function clickAds() {
if ($("#tables").find('a').length > 0) {    
    $("#tables").find('a').get(0).click();  
    setTimeout(clickAds() 35000);

    location.reload()
   };

对此:

function clickAds() 
{
    if ($("#tables").find('a').length > 0) 
    {    
        $("#tables").find('a').get(0).click();  
        setTimeout(clickAds, 35000);
       // location.reload()
    }
}

你的 if block 似乎不正确,因为我没有看到右大括号。然后在超时中不包含braced(),而仅评估回调函数的名称。

另一种方法是:

function clickAds() 
{
    if ($("#tables").find('a').length > 0) 
    {    
        $("#tables").find('a').get(0).click();  
        setTimeout(function()
        {
           clickAds();
         }, 35000);
       // location.reload()
    }
}

您为超时提供了自己的回调函数来调用 clickAds 函数

关于javascript - jQuery 无法设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248584/

相关文章:

javascript - 使用 Javascript 获取完整文件路径的最简单方法

java - java中如何计算网站的响应时间

php - 拼写检查器在 tinymce 4.0 中不起作用(非 JSON 响应)

javascript - 如何根据浏览器的resiging自动沿div宽度调整div高度

jquery.append 不适用于具有 id 的 div,但适用于 body?

javascript - 使用 jquery 将除文本字段和文本区域之外的所有 html 标签中的所有指定符号转换为另一个符号

Html 页面为 100vh 100vw,但 Bootstrap 模式占用了正文的空间,导致页面出现滚动条

jquery - 如何在不影响图像可见性的情况下减小整体尺寸?

php - 使用 Javascript 和 PHP 进行验证

html - 将 div 拉伸(stretch)到页面底部