JS中双击和单击事件冲突的解决方法


Posted in Javascript onApril 09, 2018

在JS中代码中同一功能块中通常同时会用到单击、双击事件,但通常会遇到一个问题,就是在双击的时候即执行了一次双击事件,而且还执行了两次单击事件。此类冲突在ZTree、DHTMLX中经常遇到。

想要解决两个事件冲突,需要对单击事件进行延时,如果在此延时中又监测到单击事件,那么认为此两次单击属于一个双击事件,则只执行双击事件,并第一时间将延时定时器清理,以防止第二次单击生效。

具体代码如下:

var clickFlag = null;//是否点击标识(定时器编号)
function doOnClick(...) {
  if(clickFlag) {//取消上次延时未执行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  clickFlag = setTimeout(function() {
    // click 事件的处理
  }, 300);//延时300毫秒执行
}

function doOnDblClick(...) {
  if(clickFlag) {//取消上次延时未执行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  // dblclick 事件的处理
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Accessor实现说明
Dec 06 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
JavaScript中的eval()函数详解
Aug 22 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
Jun 23 Javascript
javascript结合ajax读取txt文件内容
Dec 05 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
JS+HTML5 FileReader对象用法示例
Apr 07 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
vue脚手架及vue-router基本使用
Apr 09 #Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 #Javascript
Angular入口组件(entry component)与声明式组件的区别详解
Apr 09 #Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 #Javascript
webpack 模块热替换原理
Apr 09 #Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 #Javascript
浅谈webpack 自动刷新与解析
Apr 09 #Javascript
You might like
一个更简单的无限级分类菜单代码
2007/01/16 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
详解vue 命名视图
2019/08/14 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python发展史及网络爬虫
2019/06/19 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
什么是GWT的Entry Point
2013/08/16 面试题
指导教师评语
2014/04/26 职场文书
诉讼授权委托书
2014/10/15 职场文书
继续教育个人总结
2015/03/03 职场文书
简历中自我评价范文
2015/03/11 职场文书
考博导师推荐信范文
2015/03/27 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
用Python实现屏幕截图详解
2022/01/22 Python