jQuery中有什么东西可以让我区分双击和单击的行为吗?

When I bind both to same element only the single click gets executed.

是否有一种方法可以在执行单击之前等待一段时间,以查看用户是否再次单击?

谢谢:)

推荐答案

I found that John Strickler's answer did not quite do what I was expecting. Once the alert is triggered by a second click within the two-second window, every subsequent click triggers another alert until you wait two seconds before clicking again. So with John's code, a triple click acts as two double clicks where I would expect it to act like a double click followed by a single click.

我修改了他的解决方案,以便以这种方式发挥作用,并以我的大脑可以更好地理解的方式流动.我把延迟从2000降到了700,以便更好地模拟我感觉到的正常灵敏度.这里是小提琴:http://jsfiddle.net/KpCwN/4/.

谢谢你的基金会,约翰.我希望这个备选版本对其他人有用.

var DELAY = 700, clicks = 0, timer = null;

$(function(){

    $("a").on("click", function(e){

        clicks++;  //count clicks

        if(clicks === 1) {

            timer = setTimeout(function() {

                alert("Single Click");  //perform single-click action    
                clicks = 0;             //after action performed, reset counter

            }, DELAY);

        } else {

            clearTimeout(timer);    //prevent single-click action
            alert("Double Click");  //perform double-click action
            clicks = 0;             //after action performed, reset counter
        }

    })
    .on("dblclick", function(e){
        e.preventDefault();  //cancel system double-click event
    });

});

Jquery相关问答推荐

ASP.NET Core 8 MVC:从jQuery发布控制器中的所有值为空

在 Mastodon 中将 jQuery 添加到 Rails 6

jQuery找到最近的匹配元素

[本机代码]是什么意思?

将变量传递给jQuery AJAX成功回调中的函数

清除并刷新 jQuery Chosen 下拉列表

如何同时使用 requireJS 和 jQuery?

iframe 仅显示页面的特定部分

jQuery .live() 和 .on() 有什么区别

我可以将 Nuget 保留在 jQuery 1.9.x/1.x 路径上(而不是升级到 2.x)吗?

在 JQuery .trigger 上传递参数

循环判断复选框并计算每个选中或未选中的复选框

带有 jquery 的 jsonp

$(document).on("click"... 不工作?

带有 jQ​​uery 的饼图

使用 jQuery 获取选中复选框的值

PHPStorm IDE 中低效的 jQuery 使用警告

更改 div 的内容 - jQuery

如何使用 jquery 更改元素类型

jquery追加到列表的前面/顶部