Javascript 无法使用jQuery click()打开链接
我想在用户点击按钮后打开一些相关链接。所有这些链接都必须在新选项卡中打开 我尝试使用以下代码,但未打开链接:Javascript 无法使用jQuery click()打开链接,javascript,jquery,Javascript,Jquery,我想在用户点击按钮后打开一些相关链接。所有这些链接都必须在新选项卡中打开 我尝试使用以下代码,但未打开链接: $("div.relevant-links").on('click', function() { var count = 0; var relevant_links = $(this); function open_link() { if (count < relevant_links.siblings("a.sections").length) {
$("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);
});
$(“div.relevant-links”)。在('click',function()上{
var计数=0;
var相关链接=$(此);
函数open_link(){
if(计数<相关链接同级(“a.sections”).长度){
相关链接。兄弟姐妹(“a.sections”).eq(count).css({
背景:“黄绿色”
});
相关链接。兄弟姐妹(“a.sections”).eq(计数)。单击();
计数++;
}否则{
clearInterval(链路间隔);
}
}
打开链接();
var-link\u interval=setInterval(open\u-link,5000);
});
所有其他代码都可以正常工作,因为我可以看到链接的背景颜色发生了变化。但是,click()
方法似乎不起作用
如何触发对不同链接的点击?所有链接都必须在新选项卡中打开。我已经将它们的
目标
属性设置为\u blank
首先,删除间隔,如果要递归,请使用setTimeout,如果代码中甚至有一个小缺陷,您就有一个恼人的内存泄漏
第二,当你想打开一个网页时,无论是否新建标签。您需要在用户启动操作(如单击)后立即执行此操作。如果你想在5秒后再次触发它,它将在现代浏览器中被阻止
第三,您还可以检索链接的href并执行一个窗口。打开('your href here','u blank')
,而不是触发单击事件
最后,不要打开一堆“相关”链接。你不会让任何人满意的。尤其不是每5秒就有一个新的 尝试
.eq(计数)[0]。单击()。尽管请注意,如果集合中有很多元素,由于浏览器的安全性,可能会阻止您同时打开太多选项卡。@Rorymcrossan为什么我需要[0]
在.eq(count)
之后?我以为.eq(count)
本身会选择一个元素。它会选择,但是[0]
从jQuery对象获取元素对象,允许您伪造单击事件以打开链接。jQuery触发的单击事件不会执行此操作。事实上,如果它有效,同级(“a.sections”)[0]。单击()
会更好。我不确定它会不会,尽管谢谢@Rorymcrossan:)。最后一个问题是,使用相关链接。兄弟姐妹(“a.sections”)[count].css()
给了我一个错误。这是因为这里的[count]
也在访问元素对象,但是css()
方法是针对jQuery对象的吗?这完全正确。使用eq(count)
代替