javascript - touchend 和 target _blank 不合作

标签 javascript jquery html ios

因为我有图像和链接悬停状态,所以我使用了一段通用代码来确保您无需点击两次即可在 iOS 上打开链接。请参阅下方以了解使用的代码。

但是,我注意到现在使用带有 target="_blank"的链接时,它会同时在父窗口和新窗口中打开。我怎样才能防止这种情况发生?当然,我希望父选项卡保留在当前网站上。

此外,我还注意到 javascript 似乎在敏感的一侧点击了一点,即有时它已经在下一页上打开了一个链接,只需点击一下。这是正常的吗?有解决办法吗?

  $('a').on('click touchend', function(e) {
    var el = $(this);
    var link = el.attr('href');
    window.location = link;
	
});

最佳答案

您可以使用 e.preventDefault();取消 native 行为,然后使用 window.open(link, target);在适当的目标中打开链接:

$('a').on('click touchend', function(e) {
    e.preventDefault();
    var el = $(this);
    var link = el.attr('href');
    var target = el.attr('target');
    window.open(link, target); 

});

关于javascript - touchend 和 target _blank 不合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110451/

相关文章:

javascript - 可以使用 jQuery 获得 "mouseover for X seconds"功能吗?

javascript - 分离 AngularJs Controller 代码的最佳方法

html - 使用列表的选项卡式导航

javascript - 如何在 Angular Modal 服务中将输入值传递给 Controller

javascript - HTML 中的 div 不是一一显示的吗?

jquery - 在表单中包含文件输入时编码会变得困惑

jQuery 单击事件第一次触发,但第二次则不触发

html - CSS 导航栏 slider 高亮动画?

javascript - 如何将 inset box-shadow 添加到 mapbox-div?

javascript - 为每个第 2、5、8、11 等类元素添加边距