无论使用bootstarp还是EasyUI在为某一控件同时绑定双击事件和单击事件的时候,就会造成冲突,当我们双击时,会先触发单击事件,然后触发双击事件。
解题思路是这样的,我们在单击事件中添加一个延时,若在延时所在的时长内没有做其他操作,则执行单击事件,若在延时的时长内,再次点击控件,则取消延时程序。这样就可以在一定程度上解决这个冲突。当然这个延时的时长设置是需要斟酌的,若太长,则单击事件有种缓慢的感觉,若太端,则起不到分离单击事件和双击事件的效果。
下面奉上例子:
定义全局变量:
var TimeFn = null;
单击事件中:
onClickRow: function (index, row) {
clearTimeout(TimeFn);
//执行延时
TimeFn = setTimeout(function () {
//....Other Operation
}, 300);//延时时长设置
}
双击事件中:
onDblClickRow: function (index, row) {
clearTimeout(TimeFn);
//....Other Operation
}