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 相关文章推荐
不错的asp中显示新闻的功能
Oct 13 Javascript
不安全的常用的js写法
Sep 15 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
Aug 22 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
详解PHP后期静态绑定分析与应用
Mar 21 Javascript
js数据类型检测总结
Aug 05 Javascript
vue请求本地自己编写的json文件的方法
Apr 25 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语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
自己的js工具 Cookie 封装
2009/08/21 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
Python实现简单字典树的方法
2016/04/29 Python
python多进程实现文件下载传输功能
2018/07/28 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
公司委托书范本
2014/04/04 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
关于python类SortedList详解
2021/09/04 Python
Sql Server之数据类型详解
2022/02/28 SQL Server