Я обнаружил, что ответ Джона Стриклера не совсем оправдал мои ожидания. После того, как предупреждение запускается вторым щелчком в двухсекундном окне, каждый последующий щелчок вызывает другое предупреждение, пока вы не подождете две секунды перед повторным щелчком. Таким образом, с кодом Джона тройной щелчок действует как два двойных щелчка, тогда как я ожидал, что он будет действовать как двойной щелчок, за которым следует один щелчок.
Я переработал его решение, чтобы оно действовало таким образом и текло так, как мой разум может лучше понять. Я уменьшил задержку с 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
});
});