jquery单击事件和双击事件冲突解决方案


Posted in Javascript onMarch 02, 2016

本人需要给bootstrap-treeview的树节点添加双击事件。而该插件原生方法中不带双击事件功能。该插件的节点默认绑定的单击事件,由此引起了单击事件和双击事件的冲突。

编写测试代码

引起冲突的代码:

jquery单击事件和双击事件冲突解决方案

问题效果展示:

jquery单击事件和双击事件冲突解决方案

每一次触发双击事件都会引起两次单击事件

解决冲突的代码:

jquery单击事件和双击事件冲突解决方案

解决问题效果展示:

jquery单击事件和双击事件冲突解决方案

完美解决单击事件和双击事件冲突问题

这里主要用到两个HTMLDOMWindow对象中函数,settimeout(),clearTimeout()

jquery单击事件和双击事件冲突解决方案

我这里两个单击事件触发的时间间隔设置在等于300毫秒,这里需要根据实际情况而定。

源码如下:

<!DOCTYPE html>
<html>

 <head>
  <meta charset="utf-8">
  <title></title>
 </head>

 <body>
  <div>事件监控</div>
 </body>
 <script type="text/javascript" src="js/jquery.min.js"></script>
 <script type="text/javascript">
  /*$(function() {
     $("div").bind("click.a", function() { //单击事件 
      $("body").append("<p>click事件</p>");
     })
     $("div").bind("dblclick.a", function() { //双击事件 
      $("body").append("<p>dblclick事件</p>");
     })
     $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
      $("body").append("<p>mouseover事件</p>");
     })
     $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
      $("body").append("<p>mouseout事件</p>");
     })
    })*/
  $(function() {
   var timer = null;
   $("div").bind("click.a", function() { //单击事件 
    clearTimeout(timer);
    timer = setTimeout(function() { //在单击事件中添加一个setTimeout()函数,设置单击事件触发的时间间隔 
     $("body").append("<p>click事件</p>");
    }, 300);
   })
   $("div").bind("dblclick.a", function() { //双击事件 
    clearTimeout(timer); //在双击事件中,先清除前面click事件的时间处理 
    $("body").append("<p>dblclick事件</p>");
   })
   $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
    $("body").append("<p>mouseover事件</p>");
   })
   $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
    $("body").append("<p>mouseout事件</p>");
   })
  })
 </script>

</html>

以上就是jquery单击和双击事件冲突解决方案,希望对大家的学习有所帮助。

Javascript 相关文章推荐
zeroclipboard复制到剪切板的flash
Aug 04 Javascript
JS trim去空格的最佳实践
Oct 30 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
Oct 22 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
Nov 18 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
javascript弹出带文字信息的提示框效果
Jul 19 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
很实用的js选项卡切换效果
Aug 12 Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
jQuery实现只允许输入数字和小数点的方法
Mar 02 #Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 #Javascript
javascript求日期差的方法
Mar 02 #Javascript
基于JavaScript实现表单密码的隐藏和显示出来
Mar 02 #Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 #Javascript
js实现不重复导入的方法
Mar 02 #Javascript
基于JavaScript实现智能右键菜单
Mar 02 #Javascript
You might like
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python更新列表的方法
2015/07/28 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
python二维键值数组生成转json的例子
2019/12/06 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
协议书样本
2014/04/23 职场文书
房产授权委托书范本
2014/09/22 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
小学安全工作总结2015
2015/05/18 职场文书
小学英语教学随笔
2015/08/14 职场文书
教师学习心得体会范文
2016/01/21 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
nginx中proxy_pass各种用法详解
2021/11/07 Servers