[英]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.