同一元素同时绑定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     }));

 

 

posted on 2013-09-04 15:55  中传思客  阅读(241)  评论(0)    收藏  举报

导航