同一元素同时绑定click和dblclick事件
场景描述:
图形展示数据需要用户单击图形执行一种行为,双击图形执行另一种行为;
因此,需要在同一HTML元素上绑定单击和双击事件;
错误描述:
执行双击事件的同时也执行了单击事件;
解决方案:
1 $.singleDoubleClick = function (singleClk, doubleClk) { 2 return (function () { 3 var alreadyclicked = false; 4 var alreadyclickedTimeout; 5 return function (e) { 6 if (alreadyclicked) { 7 // double 8 alreadyclicked = false; 9 alreadyclickedTimeout && clearTimeout(alreadyclickedTimeout); 10 doubleClk && doubleClk(e); 11 } else { 12 // single 13 alreadyclicked = true; 14 alreadyclickedTimeout = setTimeout(function () { 15 alreadyclicked = false; 16 singleClk && singleClk(e); 17 }, 300); 18 } 19 } 20 })(); 21 } 22 Call the function . 23 $('.sel').bind('click', $.singleDoubleClick(function (e) { 24 //单击行为 25 }, function (e) { 26 //双击行为 27 }));
浙公网安备 33010602011771号