jQuery无法设置超时

时间:2015-01-31 05:41:57

标签: javascript jquery html

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

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

我不会对这个javascript和jQuery的东西不熟悉。

因此,我可以获取锚点列表并单击我想要的任何人,问题是它在新窗口中打开并且使用.attr('target', '_blank')对我没用。

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

点击锚点后,锚点会在页面加载时消失,所以我只需要知道第一个锚点的位置。所以这就是我的需要。

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

这是我到目前为止所做的工作。

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

    location.reload()
   };

  clickAds()

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

1 个答案:

答案 0 :(得分:0)

更改您的代码:

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块看起来不对,因为我没有看到结束支撑。然后在你的超时中不要包括braced()但是rater只是回调函数的名字。

另一种方式是:

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

你给超时提供了一个调用clickAds函数的自己的回调函数