Я виявив, що відповідь Джона Стріклера не зовсім відповідає тому, що я очікував. Як тільки попередження спрацьовує другим клацанням у двосекундному вікні, кожне наступне клацання спрацьовує ще одне сповіщення, поки ви не зачекаєте дві секунди, перш ніж клацнути ще раз. Отже, з кодом Джона потрійний клік діє як два подвійні клацання, де я очікував би, що він діятиме як подвійний клацання, за яким слідує один клік.
Я переробив його рішення, щоб функціонувати таким чином і текти так, щоб мій розум міг краще зрозуміти. Я зменшив затримку з 2000 до 700, щоб краще імітувати те, що я відчував би як нормальну чутливість. Ось скрипка: http://jsfiddle.net/KpCwN/4/ .
Дякую за основу, Джон. Сподіваюсь, ця альтернативна версія корисна іншим.
var DELAY = 700, clicks = 0, timer = null;
$(function(){
$("a").on("click", function(e){
clicks++; //count clicks
if(clicks === 1) {
timer = setTimeout(function() {
alert("Single Click"); //perform single-click action
clicks = 0; //after action performed, reset counter
}, DELAY);
} else {
clearTimeout(timer); //prevent single-click action
alert("Double Click"); //perform double-click action
clicks = 0; //after action performed, reset counter
}
})
.on("dblclick", function(e){
e.preventDefault(); //cancel system double-click event
});
});