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 相关文章推荐
JavaScript类型转换方法及需要注意的问题小结(挺全面)
Nov 11 Javascript
Web开发之JavaScript
Mar 29 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
JavaScript中的undefined学习总结
Nov 30 Javascript
js完美的div拖拽实例代码
Jan 22 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
Vue.js动态组件解析
Sep 09 Javascript
jQuery快速实现商品数量加减的方法
Feb 06 Javascript
让你彻底掌握es6 Promise的八段代码
Jul 26 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
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
图解上海144收音机
2021/03/02 无线电
PHP 地址栏信息的获取代码
2009/01/07 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
总经理司机职责
2014/02/02 职场文书
小区推广策划方案
2014/06/06 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
骨干教师考核评语
2014/12/31 职场文书
大学生就业意向书
2015/05/11 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
工作报告范文
2019/06/20 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
关于MySQL中的 like操作符详情
2021/11/17 MySQL