Jquery 延迟打开页面上的所有链接

Jquery 延迟打开页面上的所有链接,jquery,Jquery,当href包含某些文本时,我正在尝试打开页面上的所有链接,此时我正在使用 $('a[href*="/steve"]').each(function() { window.open($(this).attr('href') ); }); 现在,我正在使用的页面在href中包含大量与该文本相关的链接,因此它会在很短的时间内向我发送打开窗口的垃圾邮件,我想添加一个延迟,以便它有时间打开并等待大约5秒,然后再打开下一个窗口。我正在尝试使用。delay,但无法使其工作,因为我是一名新手,不知道

当href包含某些文本时,我正在尝试打开页面上的所有链接,此时我正在使用

$('a[href*="/steve"]').each(function() {
  window.open($(this).attr('href') );   
});
现在,我正在使用的页面在href中包含大量与该文本相关的链接,因此它会在很短的时间内向我发送打开窗口的垃圾邮件,我想添加一个延迟,以便它有时间打开并等待大约5秒,然后再打开下一个窗口。我正在尝试使用。delay,但无法使其工作,因为我是一名新手,不知道将其放置在何处。

您可以执行以下操作:

$('a[href*="/steve"]').each(function(index) {
    setTimeout(
         function(href){window.open(href)},
         (index+1)*5000, $(this).attr('href')
    );
});
其思想是以不断增加的延迟调用setTimeout。

您可以这样做:

$('a[href*="/steve"]').each(function(index) {
    setTimeout(
         function(href){window.open(href)},
         (index+1)*5000, $(this).attr('href')
    );
});

其思想是以不断增加的延迟调用setTimeout。

使用setTimeout添加延迟:

var i = 0;
$('a[href*="/steve"]').each(function() {
    ++i;
    setTimeout(function(href) { window.open(href) },i*5000, $(this).attr("href"));
});

使用setTimeout添加延迟:

var i = 0;
$('a[href*="/steve"]').each(function() {
    ++i;
    setTimeout(function(href) { window.open(href) },i*5000, $(this).attr("href"));
});

不需要使用变量。有一个索引参数传递给each回调方法。使用该值乘以延迟。此外,IE不支持通过SetTimeOut将参数传递给函数无需使用变量。有一个索引参数传递给each回调方法。使用该值乘以延迟..另外IE不支持通过setTimeoutsetTimeout将函数作为参数传递给函数,window.open不返回参数..同时setTimeout在全局范围内运行。因此,这将指向window对象,而不是a链接。setTimeout将函数作为参数,window.open不返回函数。此外,setTimeout在全局范围内运行。因此,这将指向窗口对象,而不是a链接。。