如何在 JavaScript 中监听三次点击?

2024-01-09

如果这是双击:

window.addEventListener("dblclick", function(event) { }, false);

如何捕捉三次点击?这适用于 Google Chrome 中的固定选项卡。


您需要编写自己的三次点击实现,因为不存在可以捕获连续 3 次点击的本机事件。幸运的是,现代浏览器已经event.detail,其中MDN 文档描述为 https://developer.mozilla.org/en-US/docs/Web/Events/click#Properties:

短时间内发生的连续点击次数,递增 1。

这意味着您可以简单地检查该属性的值并查看它是否是3:

window.addEventListener('click', function (evt) {
    if (evt.detail === 3) {
        alert('triple click!');
    }
});

工作演示:http://jsfiddle.net/L6d0p4jo/ http://jsfiddle.net/L6d0p4jo/


如果您需要 IE 8 支持,最好的方法是捕获双击,然后单击三次 - 例如,如下所示:

var timer,          // timer required to reset
    timeout = 200;  // timer reset in ms

window.addEventListener("dblclick", function (evt) {
    timer = setTimeout(function () {
        timer = null;
    }, timeout);
});
window.addEventListener("click", function (evt) {
    if (timer) {
        clearTimeout(timer);
        timer = null;
        executeTripleClickFunction();
    }
});

工作演示:http://jsfiddle.net/YDFLV/ http://jsfiddle.net/YDFLV/

原因是旧的 IE 浏览器不会为双击触发两次连续的单击事件。不要忘记使用attachEvent代替addEventListener对于 IE 8。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JavaScript 中监听三次点击? 的相关文章

随机推荐

  • 具有固定滚动行和固定滚动列的大型动态大小 html 表格

    我需要在网页上显示一个大表格 并且需要防止第一列和第一行滚动 我想动态设置此表的垂直大小 在某些静态大小的页眉 页脚页面内容之间 以使其尽可能高 而不强制浏览器窗口具有垂直滚动条 browser window fixed static we
  • SwiftUI 安排本地通知没有按钮?

    这可能有一个非常简单的答案 因为我对 Swift 和 SwiftUI 还很陌生 并且刚刚开始学习 我正在尝试安排每天在特定时间重复的本地通知 但仅在选择切换时才执行此操作 因此 如果变量为真 我希望安排该通知 我在网上看了一些教程 比如这个
  • POST 字典为 JSON

    我需要将字典中的一些字段 来自 VB Net 应用程序 以 JSON 格式发送到 Web 服务 下面是代码 Dim dict As New Dictionary Of String String dict Add Drinks 2 dict
  • Fortran 中是否可以将零值变量输出为空白?

    我想在格式化文件中输出实际变量 如果变量非零 则使用格式语句 但如果变量为零 则仅输出空格 类似于 Iw 0 的做法 是否可以在格式语句中执行此操作 谢谢 不 不是使用格式语句 但是通过将值写入字符串并进行处理 这相当容易做到 下面是一个演
  • 如何制作一个极其广泛的情节

    我有一个包含 10000 个观察值的长时间序列 我想将其可视化 问题是 如果我只是正常地绘制它 时间维度将被压缩 并且我想要可视化的时间序列的任何细节都不会明显 例如 plot sin 1 10000 100 rnorm 10000 5 t
  • 具有私有 IP 的 Kubernetes 入口控制器

    是否可以在没有公共 IP 地址的情况下部署入口控制器 nginx Thanks 是否可以在没有公共 IP 地址的情况下部署入口控制器 nginx 毫无疑问 是的 如果 Ingress 控制器的Service is of type NodeP
  • 如何显示 url 中的图像?

    我有一个字符串变量tmpImgURLStr其中包含类似的 URLwww abc com img png 我想在我的 imageView 中显示该图像 因为我使用了一些代码 但它不起作用 如下所示 NSLog Img URL tmpImgUR
  • C++:按值将对象传递给同一类的成员函数

    我是 C 的初学者 刚刚开始学习 OOP 在下面的程序中 我添加了相同类的对象并显示了结果 但是 我无法理解这样一个事实 如果我按值将对象传递给函数 那么更改如何反映在调用函数中 这addNumbers 函数需要 Complex 类的两个对
  • 如何在test-cafe中使用数据发出post请求?

    我是 api 测试的初学者 我正在使用test cafe我已经写了测试来制作GET请求使用请求钩子工作正常 我能够获取数据 但是当我尝试制作时POST请求使用相同的请求钩子并且我在发出请求时无法发送数据 因为它需要是缓冲区类型 我无法将 J
  • 在 redux-observable 中编写和排序多个史诗

    我有一个问题不知道如何解决 我有两个史诗向 api 发出请求并更新商店 const mapSuccess actionType gt response gt type actionType SUCCESS payload response
  • 在单元测试中获取控制器的编译模板

    我有以下控制器 angular module app controller userList scope appRules function scope appRules scope isUserInRole function user r
  • 如何直接从 Rails 控制器返回 HTML?

    我的模型对象之一有一个 文本 列 其中包含网页的完整 HTML 我想编写一个控制器操作 它直接从控制器返回此 HTML 而不是像控制器上的其他操作一样通过 erb 模板传递它 我的第一个想法是将此操作放入一个新控制器中 并制作一个具有空布局
  • 带计数的堆叠条形图中 geom_text 的百分比

    我想要一个堆叠条形图 其中包含基于计数的百分比 我几乎达到了我想要的 但文本中的每个值都是 100 而不是真正的百分比 我认为我的代码中有一个小错误 但我找不到它 ggplot mtcars aes fill factor gear x f
  • 改进通过 JSON 将服务器数据库镜像到客户端数据库的过程?

    我有一个现成的适用于 iPad 的企业 非 AppStore 旧版 iOS 应用程序 我需要重构它 它是由另一位开发人员编写的 他是我当前工作的前任 该应用程序通过 JSON 从具有 MSSQL 数据库的服务器获取数据 数据库模式有大约 3
  • 交错?锁链?由一系列不同的delay()和duration()的d3转换寻址的单个DOM元素

    正如所解释的here http bost ocks org mike transition per element 您可以安排连续的转换驱动的属性值更改singleelement 使用transition transition 它创建一个新
  • 从另一个页面的代码隐藏中获取 ASP.Net 页面的 URL

    我试图从页面对象中找到确定页面 url 的方法 看来你只能获取当前上下文的路径 一个页面可以有多个 url 例如 我家里有一台服务器正在运行 并且该站点的 URL 根据我从何处查看而有所不同 当我在家时 我只使用内部服务器名称 这样流量就不
  • Java 9 中的 native2ascii 可执行文件发生了什么

    我正在尝试使用 java 9 编译我的应用程序 但它失败了 因为 native2ascii 可执行文件不存在 Java 9 中删除了吗 还有其他工具可以做同样的事情吗 是的 native2ascii 在 Java 9 中被删除了 错误报告以
  • 从 url 到 JSON 到 HTML

    我目前正在尝试学习 RESTful API 并将它们实现到用例中 我想做的一件事是将带有 json 有效负载的 url 从一台服务器加载到单独的 Web 服务器中 以在表上显示数据 我对此不太熟悉 所以我试图找到最好的方法来做到这一点 我正
  • 如何在C++中创建具有动态对齐要求的对象?

    C 中分配和使用具有动态指定对齐方式的缓冲区的正确方法是什么 我想到的用例是 Vulkan 动态统一缓冲区 请参阅上一个问题 https stackoverflow com q 45458918 9723177其中抽象地讨论了所需的过程 其
  • 如何在 JavaScript 中监听三次点击?

    如果这是双击 window addEventListener dblclick function event false 如何捕捉三次点击 这适用于 Google Chrome 中的固定选项卡 您需要编写自己的三次点击实现 因为不存在可以捕