首页 > 解决方案 > 无法使用 jQuery click() 打开链接

问题描述

我想在用户单击按钮后打开一些相关链接。所有这些链接都必须在新选项卡中打开。

我尝试使用以下代码,但它没有打开链接:

$("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.

标签: javascriptjquery

解决方案


首先,删除间隔,如果你要递归,使用 setTimeout,如果你的代码中有一个小缺陷,你就会给自己带来烦人的内存泄漏。

其次,当你想打开一个网页时,新标签页与否。您需要在用户发起点击等操作后立即执行此操作。如果您要在 5 秒后再次触发它,它将在现代浏览器中被阻止。

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

最后,不要打开一堆“相关”链接。你不会让任何人对此感到高兴。尤其不是每 5 秒一个新的!


推荐阅读