Javascript 双击事件不触发
JavaScript中的双击事件存在一些问题 我希望能够快速连续地点击一个元素,但要注意双击。这在技术上是可能的,还是我需要单击一次,然后在单击两次时进行监听 代码笔示例 JS也可以在下面找到Javascript 双击事件不触发,javascript,event-listener,double-click,Javascript,Event Listener,Double Click,JavaScript中的双击事件存在一些问题 我希望能够快速连续地点击一个元素,但要注意双击。这在技术上是可能的,还是我需要单击一次,然后在单击两次时进行监听 代码笔示例 JS也可以在下面找到 (function() { var el; var count = 0; var counter; function init() { el = document.getElementById('click-me'); counter = document.getEle
(function() {
var el;
var count = 0;
var counter;
function init() {
el = document.getElementById('click-me');
counter = document.getElementById('counter');
el.addEventListener('dblclick', onDblClick, false);
}
function onDblClick(e) {
count++;
counter.textContent = count;
}
init();
}());
似乎在双击某个东西后,您需要留下一个短暂的暂停,让它重置事件,可能是一秒或半秒
dblclick事件本身是否有我遗漏的东西,或者我试图做的是不可能的
p.S.这只需要在Webkit/Chrome中使用,因为这不是用于网站的,而是用于游戏的覆盖层。类似的内容():
我可以点击你的代码笔,它会继续增加。你的问题出在某个特定的浏览器/设备/输入法上吗?@Fenton在运行时,它有时会在Chrome 61上出现故障(需要双击3次)。所以看起来它在Edge、IE和Firefox上都能正常工作。我只需要在Chrome/Webkit中使用它,因为这不是专门为网站设计的。我将更新我的问题。@Chrome上的MDN dblclick仅适用于“[1]仅适用于元素和某些元素类型。”看起来双击之间需要暂停。如果您在一行中单击太多次,它将只工作一次。虽然有点道理,但如果我连续点击4次,那么这是一个四次点击,即使双击触发,因为没有四次或三次点击谢谢!看起来这是最好的解决方案
dblclick
在我使用的Webkit引擎中看起来不太一致。
(function() {
var el;
var count = 0;
var counter;
var clickCount = 0;
function init() {
el = document.getElementById('click-me');
counter = document.getElementById('counter');
el.addEventListener('click', onDblClick, false);
}
function onDblClick(e) {
clickCount++;
if (clickCount === 1) {
singleClickTimer = setTimeout(function() {
clickCount = 0;
}, 400);
} else if (clickCount === 2) {
count++;
clearTimeout(singleClickTimer);
clickCount = 0;
counter.textContent = count;
}
}
init();
}());