Descubrí que la respuesta de John Strickler no cumplía con lo que esperaba. Una vez que la alerta se activa con un segundo clic dentro de la ventana de dos segundos, cada clic posterior activa otra alerta hasta que espere dos segundos antes de volver a hacer clic. Entonces, con el código de John, un triple clic actúa como dos dobles clics donde esperaría que actuara como un doble clic seguido de un solo clic.
He reelaborado su solución para que funcione de esta manera y fluya de una manera que mi mente pueda comprender mejor. Bajé el retardo de 2000 a 700 para simular mejor lo que sentiría como una sensibilidad normal. Aquí está el violín: http://jsfiddle.net/KpCwN/4/ .
Gracias por la fundación, John. Espero que esta versión alternativa sea útil para otros.
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
});
});