easyui中双击事件与单击事件冲突解决方案

无论使用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
    }

原文地址

猜你喜欢

转载自blog.csdn.net/u011293970/article/details/81109221