问题
最近项目碰到一个奇怪的问题,slick grid的双击事件有时候会触发,有时候则不会。排查的方向一直是确认该事件是否绑定正确,后来才意识到是因为单击事件所执行的内容特别多,导致双击没有触发。
解决方法
加入一个定时器,单击事件延迟300ms执行,若此间鼠标点击了两次,则进行双击事件。
var time = null;
grid.onClick.subscribe(function(e,args){
clearTimeout(time);
time = setTimeout(function(){
//do something;
},300);
});
grid.onDblClick.subscribe(function(e,args){
clearTimeout(time);
//do something other
});
思考
这种方式可以应用于大多数的双击事件场景,不仅仅是slick grid。
网友评论