javascript - 检测到双击事件时需要取消点击/鼠标弹起事件

标签 javascript jquery event-handling click double-click

这是怎么做到的?

最佳答案

这是一个很好的问题,其实我认为这并不容易完成。 ( Some discussion on this )

如果拥有这个功能对你来说 super 重要,你可以像这样破解它:

function singleClick(e) {
    // do something, "this" will be the DOM element
}

function doubleClick(e) {
    // do something, "this" will be the DOM element
}

$(selector).click(function(e) {
    var that = this;
    setTimeout(function() {
        var dblclick = parseInt($(that).data('double'), 10);
        if (dblclick > 0) {
            $(that).data('double', dblclick-1);
        } else {
            singleClick.call(that, e);
        }
    }, 300);
}).dblclick(function(e) {
    $(this).data('double', 2);
    doubleClick.call(this, e);
});

这是一个 example of it at work .

正如评论中所指出的,有一个插件可以完成我上面所做的大部分工作,但会为您打包,这样您就不必看到丑陋的东西:FixClick .

关于javascript - 检测到双击事件时需要取消点击/鼠标弹起事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067464/

相关文章:

javascript - 我有几组 promise ,如何解析每组 "sequentially"?

javascript - JQUERY 表单验证无法正常工作

javascript - networkD3::sankeyNetwork 中的 R-自定义工具提示

javascript - Chart.js 设置全局点大小不起作用

javascript - 使用javascript在除一页之外的每一页上显示html

jquery - 尝试使用 CSS 和 jQuery 将屏幕面板分开

Google map 的 Javascript 事件处理

c# - 如果事件在第一个未完成处理时再次发生会发生什么

javascript - 使用单独的 Javascript 函数提交隐藏的 PayPal 表单

objective-c - 如何让 touchesMoved 只控制一个 View ?