JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法


Posted in Javascript onJune 07, 2018

本文实例讲述了JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法。分享给大家供大家参考,具体如下:

最近项目中遇到了在同一DOM元素上需要添加 onclick 和 ondblclick 2个事件,如果按照正常的方式添加处理,结果发现只会执行 onclick,而不会执行 ondblclick;这时我们需要对2个事件的处理函数稍作处理就可以实现2个事件并存了,代码如下:

<script type="text/javascript">
 var clickTimer = null;
 function _click(){
   if(clickTimer) {
     window.clearTimeout(clickTimer);
     clickTimer = null;
   }
   clickTimer = window.setTimeout(function(){
      // your click process code here
      alert("你单击了我");
   }, 300);
 }
  function _dblclick(){
   if(clickTimer) {
     window.clearTimeout(clickTimer);
     clickTimer = null;
   }
   // your click process code here
   alert("你双击了我");
 }
</script>
<button onclick="_click();" ondblclick="_dblclick();">单击或双击我</button>

处理思想就是:利用定时器延迟执行onclick事件,这样在双击过程中会取消中途触发的单击事件。

PS:关于javascript事件说明可参考本站javascript事件与功能说明大全:http://tools.3water.com/table/javascript_event

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JS 自动安装exe程序
Nov 30 Javascript
JS修改css样式style浅谈
May 06 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
Oct 28 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
Javascript 编码约定(编码规范)
Mar 11 Javascript
angular 服务随记小结
May 06 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 jQuery
JavaScript事件委托原理与用法实例分析
Jun 07 #Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 #jQuery
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 #Javascript
AngularJS 前台分页实现的示例代码
Jun 07 #Javascript
浅谈PDF.js使用心得
Jun 07 #Javascript
vue better scroll 无法滚动的解决方法
Jun 07 #Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 #Javascript
You might like
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
详解vue中组件参数
2018/07/09 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
python发送邮件脚本
2018/05/22 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
金融专业应届生求职信
2013/11/02 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
班主任工作实习计划
2015/01/16 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
Python内置的数据类型及使用方法
2022/04/13 Python