Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用jQuery click()打开链接_Javascript_Jquery - Fatal编程技术网

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)
代替