Tôi thấy rằng câu trả lời của John Strickler không hoàn toàn làm được những gì tôi mong đợi. Khi cảnh báo được kích hoạt bằng một lần nhấp thứ hai trong cửa sổ hai giây, mỗi lần nhấp tiếp theo sẽ kích hoạt một cảnh báo khác cho đến khi bạn đợi hai giây trước khi nhấp lại. Vì vậy, với mã của John, một cú nhấp ba lần hoạt động như hai lần nhấp đúp trong đó tôi mong đợi nó hoạt động giống như một cú nhấp đúp sau đó là một lần nhấp.
Tôi đã làm lại giải pháp của anh ấy để hoạt động theo cách này và trôi chảy theo cách mà tâm trí tôi có thể hiểu rõ hơn. Tôi đã giảm độ trễ từ 2000 xuống 700 để mô phỏng tốt hơn những gì tôi sẽ cảm thấy là độ nhạy bình thường. Đây là fiddle: http://jsfiddle.net/KpCwN/4/ .
Cảm ơn vì nền tảng, John. Tôi hy vọng phiên bản thay thế này hữu ích cho những người khác.
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
});
});