javascript - 如何在javascript中检查点击是单次还是双次

标签 javascript jquery click

我正在尝试检查元素上的点击是单击还是双击。

我正在尝试使用这段代码。

var clk_ch = document.getElementById('clk');

function singleClick() {
    alert("single click");
}

function doubleClick() {
    alert("double click");
}

var clickCount = 0;

clk_ch.addEventListener('click', function() {
    alert();
    clickCount++;
    if (clickCount === 1) {
        singleClickTimer = setTimeout(function() {
            clickCount = 0;
            singleClick();
        }, 400);
    } else if (clickCount === 2) {
        clearTimeout(singleClickTimer);
        clickCount = 0;
        doubleClick();
    }
}, false);

我没有收到任何警报。我哪里错了? clk是被点击元素的id

<input type="image" src="button.gif" id="clk" >

最佳答案

无需使用setTimeout。您可以添加 dblclick事件监听器。

document.addEventListener("DOMContentLoaded", function (event) {

    var clk_ch = document.getElementById('clk');

    clk_ch.addEventListener('click', singleClick, false);
    clk_ch.addEventListener('dblclick', doubleClick, false);

});

DEMO

在 jquery 中:

$('#clk').on('click', singleClick).on('dblclick', doubleClick);

DEMO

关于javascript - 如何在javascript中检查点击是单次还是双次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31286257/

相关文章:

javascript - 如何让我的 Electron 自动更新程序工作?

javascript - 比较值并确定数组中的位置

javascript - Disqus 评论系统 - 边距左偏移

actionscript-3 - 所有 child 均已禁用,只有一只鼠标处于事件状态

javascript - jQuery - keyup 事件作为函数

jQuery .Click() 不起作用

javascript - 如何从原型(prototype)中的 forEach 推送到构造函数中的数组?

php - JS/jQuery/PHP : trying to generate an URL using PHP variables

javascript - 将鼠标悬停在另一个对象上时更改显示 CSS

Javascript滚动到顶部并滚动到底部