jQuery:检测 cmd+click / control+click

2024-03-06

我在选项卡中有我的网络应用程序的选项。

<ul id="tabs">
    <li><a href="a.php">aaa</a></li>
    <li><a href="b.php">bbb</a></li>
    <li><a href="c.php">ccc</a></li>
    <li><a href="d.php">ddd</a></li>
    <li><a href="e.php">eee</a></li>
</ul>

当用户单击任何选项卡(在同一窗口中)时,我会使用此代码获得淡出效果,然后自动重定向:

$('ul#tabs li a').click(function(e){
    if(e.which == 1) {
        var link = $(this).attr('href');
        $('#content').fadeOut('fast',function(){
            window.location = link;
        });
    }
});

它效果很好,因为它忽略了鼠标中键单击(在新选项卡中打开选项时,不应触发效果)。问题是,如果我使用键盘+鼠标组合打开选项卡,而不是打开新选项卡,它会触发整个效果/重定向代码。

那么,我如何用 jQuery 检测到这一点:

  • cmd + 鼠标左键单击 (mac)
  • Control + 鼠标左键单击(Windows/Linux)

很遗憾,event.metaKey当单击时按住 ctrl 键时,在 Windows 上不会评估为 true。

幸运的是,event.ctrlKey在这些情况下确实评估为 true。另外,您可能需要考虑在事件处理程序中使用 Shift + 单击。

因此,你的跨平台 jquery 风格的 javascript 代码将类似于:

$('ul#tabs li a').on('click', function(e) {
    var link = $(this).attr('href');

    // Check "open in new window/tab" key modifiers
    if (e.shiftKey || e.ctrlKey || e.metaKey) {
      window.open(link, '_blank');
    } else {
      $('#content').fadeOut('fast',function(){
        window.location = link;
      });
    }
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery:检测 cmd+click / control+click 的相关文章

随机推荐

  • 使用非默认 AlgorithmIdentifier 解密 EnvelopedCms

    我正在尝试解密信封内容管理系统 https msdn microsoft com en us library system security cryptography pkcs envelopedcms v vs 110 aspx使用非默认
  • GCC 的 __attribute__((__packed__)) 是否保留原始顺序?

    Purpose 我正在用 C 编写一个网络程序 具体来说gnu89 我想通过重新解释某个特定的内容来简化事情struct X作为大字节数组 又名char 通过网络发送字节 并将它们重新解释为struct X另一方面 为此我决定使用 gcc
  • Laravel 密室未经身份验证

    我在我的项目中使用 Laravel sainttum 以 Angular 作为前端 第二个 api 请求未经身份验证 请让我知道我哪里出错了 前端 gt 127 0 0 1 4200 后端 gt 本地主机 8888 env 配置 SESSI
  • 处理空手道 UI 场景中的基本身份验证

    我刚刚开始实现空手道 UI v0 9 5 已经使用空手道实现了 api 测试 并且效果完美 遵循此页面上的 HTTP 基本身份验证策略 https github com intuit karate http basic authentica
  • 想要在运行 Cucumber 之前加载种子数据

    我希望黄瓜在开始测试之前将我的种子数据加载到 db seeds rb 中 不是在每个场景或功能之前 而是在运行测试之前仅一次 而且在每个场景之后 种子必须保留在数据库中 那可能吗 我尝试创建一个文件 features support see
  • 对于 MVC 4,Microsoft.AspNet.Mvc 和 System.Web.Mvc 之间有什么区别?

    我有自己的服务器 并且正在考虑将我的解决方案之一升级到 ASP NET MVC 4 然后再升级其余的 3 作为其中的一部分我下载了独立安装程序 http www microsoft com en us download details as
  • “ui-state-hover”效果的问题

    我有一个html div class portlet header a href class ui icon ui corner all ui state default span class ui icon ui icon minusth
  • 如何在 Emacs 中搜索第 n 次出现的模式?

    我正在尝试尽可能避免使用 elisp 我认为我能够在 Elisp 中实现我的问题的解决方案 但这不是我想要的 I am looking for the nth occurence of a string in a buffer For in
  • Vega-Lite:数据中的描边颜色值?

    在 Vega 中 可以从数据中获取颜色值 如下所示 维加的例子 https vega github io editor url vega N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz
  • 在 config.py 中提供全局配置变量的最 Pythonic 方式? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我对过于复杂的简单事物的无尽追求中 我正在研究最 Pythonic 的方法来在典型的 配置文件 在 Python Egg 包中找到 传统方式
  • 如何备份每个表100行的数据库?

    我想备份包含所有对象和数据的 SQL Server 数据库 但所有表中的数据应限制为每个表 100 行 我可以在 mysql 中很容易地做到这一点 但在 SQL Server 中我不知道该怎么做 你不能真正使用显式的BACKUP DATAB
  • WAS 8.5,如何避免注释扫描?

    我们在WAS 8 5 0 0上部署一个Web应用程序 我们使用PARENT LAST类加载器 由于某种原因我们必须这样做 在启动过程中 有一些警告 12 16 14 17 19 15 088 CST 00000048 InjectionPr
  • 具有固定边数的最短路径

    在高效的时间内找到通过图形的最短路径 并附加该路径必须完全包含的约束n nodes 我们有一个有向加权图 它可能包含也可能不包含循环 我们可以使用 Dijkstra 算法轻松找到最短路径 但 Dijkstra 算法不保证边的数量 我们能想到
  • 如何动态更改xsl:output方法属性值?

    我想使用相同的 xslt 并针对不同的输出 即 xml html xhtml 和文本 进行测试 当然我正在这样做
  • 在 JavaScript 中动态选择并添加标签

    我需要有关 iPhone 上的 JavaScript 的一些帮助UIWebView 我有如下 HTML span this example for selection b from b UIWebView span 我想进行选择 然后添加
  • 如何测试 Angular2 中是否存在路由?

    在 Angular2 中如何检查路由是否存在 我有一种方法可以记住如果用户未经授权则导航到哪条路线 登录时我有 this router navigate this authService redirectUrl 但我只想在redirectU
  • 从 PendingIntent 获取 Intent 会导致 SecurityException

    我们有一些运行了很长时间的旧代码 public static Intent getIntent PendingIntent pendingIntent Intent intent null try Method getIntent Pend
  • 使用 REST 与 Jira 与 java 客户端通信

    我一直在阅读有关 Atlassian Jira 的页面中的文档 我想简单地在 Eclipse 中创建一个类 以使用 Rest 连接到 Jira 并获取问题的名称 我需要安装什么 我下载了一罐这一页 https marketplace atl
  • 如何在 ios 中创建垂直翻转视图动画?

    我不知道如何垂直翻转我的 uiview 我有很多视图 而且每个视图 有一些照片及其描述 我想要像书一样的翻转视图 但不是 从左到右必须是从上到下或从下到上 我想垂直翻转整个页面 如从上到下或从下到上 如何在ios中完成此类工作 我正在谷歌上
  • jQuery:检测 cmd+click / control+click

    我在选项卡中有我的网络应用程序的选项 ul li a href a php aaa a li li a href b php bbb a li li a href c php ccc a li li a href d php ddd a l