如果一个元素被点击两次,那么' dblclick'事件被解雇了。如果继续单击该元素,则“< dblclick'事件不会继续被解雇。 ' dblclick'事件只会被解雇一次,直到" cooloff"期间完成,例如。有一段时间可以在另一个人之前等待' dblclick'无论单击元素多少次,都可以触发事件。
我找不到任何文件,指明在另一个< dblclick'之前必须经过多长时间。可以发生。有谁知道' dblclick' " cooloff"期间是?
我试图通过脚本点击一个元素来测试这个,但由于某些原因,javascript调用的点击不会触发' dblclick'事件。所以我已经手动测试了,在发生另一次双击之后,我无法在短时间内发生双击。您可以尝试自己:https://jsfiddle.net/5v4pcx2k/8/
code
如果您想知道,这基本上就是浏览器的效果https://jsfiddle.net/b0y5ej2y/3/
答案 0 :(得分:0)
你的jsfiddle中存在很多错误和效率低下。
说了这么多,我仍然无法手动点击任何超过约700毫秒的速度。我认为发生的事情是窗口管理器/操作系统/鼠标驱动程序人为地阻止双击到某个速度限制。
这是我对dblclick速度的jsfiddle测试的版本,带有一个工作的程序化dblclick模拟,可以在我的计算机上每隔4ms快速地进行dblclick。
https://jsfiddle.net/stephencarmody/v0b3dpwc/
var lastOne;
foobar.addEventListener('dblclick', function (event) {
log.innerText = 'elapsed: ' + (event.timeStamp - lastOne);
lastOne = event.timeStamp;
});
function simulateClick () {
var event = new MouseEvent('dblclick', {
'view': window,
'bubbles': true,
'cancelable': true
});
foobar.dispatchEvent(event);
}
setInterval(simulateClick, 0);
注释掉setInterval行以测试手动dblclick事件。