Javascript 如何通过注册only click事件来检测双击元素

Javascript 如何通过注册only click事件来检测双击元素,javascript,Javascript,我不能使用eventdblClick我只能将事件侦听器添加到单击事件中。 是否可以通过只注册单击事件来检测双击元素() 我添加了如下事件: for (var i....)... { ...addEventListener('click', function(event) 如果无法使用双击事件侦听器,您可以尝试使用上次单击标志和超时来检查下一次单击是否在短时间内发生。如果发生,则是双击的信号。大概是这样的: var dblClickCheck = false; var timeout; ele

我不能使用event
dblClick
我只能将事件侦听器添加到
单击事件中。
是否可以通过只注册单击事件来检测双击元素() 我添加了如下事件:

for (var i....)... {
...addEventListener('click', function(event)

如果无法使用双击事件侦听器,您可以尝试使用上次单击标志和超时来检查下一次单击是否在短时间内发生。如果发生,则是双击的信号。大概是这样的:

var dblClickCheck = false;
var timeout;

element.addEventListener('click', function () {

    if(timeout){
        clearTimeout(timeout);
    }

    if(dblClickCheck){
        alert('double click');
        return;
    }

    dblClickCheck = true;

    timeout = setTimeout(function () {
        dblClickCheck = false;
    }, 200);

}, false);

您需要根据您自己的情况设置延迟
setTimeout
,这将起作用,您可以调整超时以满足您的需要

函数makeDoubleClick(doubleClickCallback,singleClickCallback){
var=0,超时;
返回函数(){
点击++;
如果(单击==1){
singleClickCallback&&singleClickCallback.apply(此参数);
console.log('singleclick');
timeout=setTimeout(函数(){clicks=0;},400);
}否则{
超时&清除超时(超时);
console.log(“双击”);
doubleClickCallback&&doubleClickCallback.apply(此参数);
点击次数=0;
}
};
}
document.getElementById('btn').addEventListener('click',MakedDoubleClick(),false)

点击我

下面的代码将事件侦听器添加到300毫秒后消失的按钮。因此,当按钮在300毫秒内未按下两次时,内部功能不会启动

var-button=document.getElementById(“dbl_单击”);
var outerFunction=函数(事件){
按钮。addEventListener('click',innerFunction);
setTimeout(function(){button.removeEventListener('click',innerFunction)},300);
};
var innerFunction=函数(事件){
警报(“双击!”);
}
按钮。addEventListener('click',outerFunction)

双击我!

还记得你是否看到过连续两次快速点击吗?我不确定你为什么不能使用dblclick。对我来说,这是一种肮脏的解决方案,但你可以跟踪点击事件是否在特定时间内触发两次。e、 g.:200-500毫秒“我不能使用event
dblClick
”为什么?这正是您应该使用的。我正在添加脚本以响应本机webview。它只会识别单击“不”dblClick@1110字体我觉得很难相信。引用?