Ho scoperto che la risposta di John Strickler non ha fatto esattamente quello che mi aspettavo. Una volta che l'avviso viene attivato da un secondo clic all'interno della finestra di due secondi, ogni clic successivo attiva un altro avviso finché non si attendono due secondi prima di fare nuovamente clic. Quindi, con il codice di John, un triplo clic agisce come due doppi clic dove mi aspetto che agisca come un doppio clic seguito da un singolo clic.
Ho rielaborato la sua soluzione affinché funzioni in questo modo e fluisca in un modo che la mia mente possa comprendere meglio. Ho abbassato il ritardo da 2000 a 700 per simulare meglio quella che avrei percepito come una sensibilità normale. Ecco il violino: http://jsfiddle.net/KpCwN/4/ .
Grazie per la fondazione, John. Spero che questa versione alternativa sia utile ad altri.
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
});
});