无法使用jQuery click()

时间:2019-12-12 13:15:24

标签: 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) {
      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

1 个答案:

答案 0 :(得分:1)

首先,删除间隔,如果要递归,请使用setTimeout,如果代码中甚至有一个小缺陷,您就会遇到烦人的内存泄漏。

第二,当您想打开网页时,是否打开新标签页。用户启动诸如点击之类的操作后,您需要立即执行此操作。如果您要在5秒钟后再次触发它,它将在现代浏览器中被阻止。

第三,您还可以检索链接的href并执行window.open('your href here', '_blank')而不是触发click事件。

最后,请勿打开一堆“相关”链接。您不会让任何人对此感到满意。特别是不是每5秒就有一个新的!