双击事件不触发

Double click events not firing

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

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

代码笔示例 here

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 中工作,因为这不是用于网站,而是用于游戏的叠加层。

像这样 (https://gist.github.com/karbassi/639453):

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

}());