【问题标题】:jQuery simulate ctrl + click when opening new tab on click event在单击事件上打开新选项卡时,jQuery 模拟 ctrl + 单击
【发布时间】:2017-05-16 13:30:26
【问题描述】:

我已经用 jQuery 编写了以下代码:

  $(document).on("click", "#datatable-responsive tbody tr td button.btn", function () {
     window.open('somelinkhere', '_blank');
  });

所以这里的问题是当我这样做时,它完美地工作,打开的新标签获得焦点,我不希望这种情况发生。相反,我想模拟这两个击键: ctrl + 鼠标左键

以便我的主窗口保持焦点并打开新标签...

我如何在 jQuery 中做到这一点?

【问题讨论】:

标签: javascript jquery html events onclick


【解决方案1】:

一个解决方案可能是:

$(document).ready(function() {
 $("#datatable-responsive tbody tr td button.btn").click(function() {
    var thisWind = window.location;
    window.location = ('http://www.google.lt');
    window.open(thisWind, '_blank');
 });    
})

非常简单 - 第一个窗口位置更改为弹出 URL,然后重新打开主窗口。

【讨论】:

  • 看起来工作得很好......但它会导致 2 个页面加载......不是吗?可能还有其他方式:(
  • @Rush.2707 是的,有两个负载,但是我们需要解决这个问题,只有这个出现在我的脑海中......
【解决方案2】:

您可以创建一个锚元素并在该元素上触发ctrl + click

$("<a/>", {href: "https://www.google.com/"}).get(0)
    .dispatchEvent(new MouseEvent("click", {ctrlKey: true}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2021-08-27
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多