您的位置:首页 > Web前端 > JQuery

【jQuery】jQuery双击事件与单击事件的冲突解决

2016-10-21 10:14 323 查看
无论使用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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息