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 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
JavaScript判断FileUpload控件上传文件类型
Sep 28 Javascript
js贪吃蛇游戏实现思路和源码
Apr 14 Javascript
学习Node.js模块机制
Oct 17 Javascript
jQuery模拟淘宝购物车功能
Feb 27 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
JS中的防抖与节流及作用详解
Apr 01 Javascript
在 Vue 中编写 SVG 图标组件的方法
Feb 24 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实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP常用的小程序代码段
2015/11/14 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
详解jQuery选择器
2016/12/21 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
Django小白教程之Django用户注册与登录
2016/04/22 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python写入已存在的excel数据实例
2018/05/03 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
购房委托书范本
2014/09/18 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
Python获取字典中某个key的value
2022/04/13 Python
Echarts如何重新渲染实例详解
2022/05/30 Javascript