我想在用户单击按钮后打开一些相关链接。所有这些链接都必须在新标签中打开。
我尝试使用以下代码,但无法打开链接:
$("div.relevant-links").on('click', function() {
var count = 0;
var relevant_links = $(this);
function open_link() {
if (count < relevant_links.siblings("a.sections").length) {
relevant_links.siblings("a.sections").eq(count).css({
background: 'yellowgreen'
});
relevant_links.siblings("a.sections").eq(count).click();
count++;
} else {
clearInterval(link_interval);
}
}
open_link();
var link_interval = setInterval(open_link, 5000);
});
所有其他代码都能正常工作,因为我可以看到链接的背景颜色发生了变化。但是,click()
方法似乎不起作用。
如何触发对不同链接的点击?所有链接都必须在新选项卡中打开。我已将其target
属性设置为_blank
。
答案 0 :(得分:1)
首先,删除间隔,如果要递归,请使用setTimeout,如果代码中甚至有一个小缺陷,您就会遇到烦人的内存泄漏。
第二,当您想打开网页时,是否打开新标签页。用户启动诸如点击之类的操作后,您需要立即执行此操作。如果您要在5秒钟后再次触发它,它将在现代浏览器中被阻止。
第三,您还可以检索链接的href并执行window.open('your href here', '_blank')
而不是触发click事件。
最后,请勿打开一堆“相关”链接。您不会让任何人对此感到满意。特别是不是每5秒就有一个新的!