javascript - 无法使用 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
.
解决方案
首先,删除间隔,如果你要递归,使用 setTimeout,如果你的代码中有一个小缺陷,你就会给自己带来烦人的内存泄漏。
其次,当你想打开一个网页时,新标签页与否。您需要在用户发起点击等操作后立即执行此操作。如果您要在 5 秒后再次触发它,它将在现代浏览器中被阻止。
第三,您还可以检索链接的 href 并执行 awindow.open('your href here', '_blank')
而不是触发 click 事件。
最后,不要打开一堆“相关”链接。你不会让任何人对此感到高兴。尤其不是每 5 秒一个新的!
推荐阅读
- javascript - 如何在 SlickGrid 中使用 Javascript 获取要显示的名称而不是 ID
- c# - Roslyn 分析器在 VSIX 实例中不起作用
- batch-file - 我想制作一个 bat 文件,它会找到我电脑的总 RAM 并根据它安装软件
- ruby-on-rails - 自定义错误页面 404/500 但收到 500 内部服务器错误
- python - BigQuery GIS 数据到 GeoJSON
- java - str_to_date mysql 不在 hsql 中运行
- firebase - 我可以在自己的后端使用 Admin SDK 创建触发器吗?
- python - 如何在 django 中将帖子描述作为邮件发送?
- javascript - 如何在 Javascript 中将响应和请求标头转换为数组缓冲区?
- javascript - react-router-dom 重定向不重定向到我想要的组件,但它正在重定向到不同的路径