Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 双击事件不触发_Javascript_Event Listener_Double Click - Fatal编程技术网

Javascript 双击事件不触发

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

JavaScript中的双击事件存在一些问题

我希望能够快速连续地点击一个元素,但要注意双击。这在技术上是可能的,还是我需要单击一次,然后在单击两次时进行监听

代码笔示例

JS也可以在下面找到

(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();

}());