簡體   English   中英

雙擊事件未觸發

[英]Double click events not firing

JavaScript中的雙擊事件存在一些問題。

我希望能夠快速連續單擊某個元素,但要監聽雙擊。 這在技術上是否可行?或者我需要單擊一下以偵聽兩次單擊后的聲音嗎?

這里有一個codepen示例。

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事件本身缺少什么嗎?還是我無法做到?

PS這僅需要在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();

}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM