ฉันพบว่าคำตอบของ John Strickler ไม่ได้เป็นไปตามที่ฉันคาดหวัง เมื่อการแจ้งเตือนถูกกระตุ้นโดยการคลิกครั้งที่สองภายในหน้าต่างสองวินาทีทุก ๆ การคลิกที่ตามมาจะทริกเกอร์การแจ้งเตือนอีกครั้งจนกว่าคุณจะรอสองวินาทีก่อนที่จะคลิกอีกครั้ง ดังนั้นด้วยรหัสของ John การคลิกสามครั้งจะทำหน้าที่เป็นสองคลิกสองครั้งโดยที่ฉันคาดหวังว่ามันจะทำหน้าที่เหมือนการคลิกสองครั้งตามด้วยการคลิกเพียงครั้งเดียว
ฉันได้ปรับปรุงโซลูชันของเขาใหม่เพื่อให้ทำงานในลักษณะนี้และไหลไปในทางที่จิตใจของฉันสามารถเข้าใจได้ดีขึ้น ฉันลดการหน่วงเวลาลงจาก 2000 เป็น 700 เพื่อจำลองสิ่งที่ฉันรู้สึกว่าเป็นความไวปกติได้ดีขึ้น นี่คือซอ: http://jsfiddle.net/KpCwN/4/
ขอบคุณสำหรับมูลนิธิจอห์น ฉันหวังว่าเวอร์ชันอื่นนี้จะเป็นประโยชน์กับผู้อื่น
var DELAY = 700, clicks = 0, timer = null;
$(function(){
$("a").on("click", function(e){
clicks++;
if(clicks === 1) {
timer = setTimeout(function() {
alert("Single Click");
clicks = 0;
}, DELAY);
} else {
clearTimeout(timer);
alert("Double Click");
clicks = 0;
}
})
.on("dblclick", function(e){
e.preventDefault();
});
});