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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
用JS剩余字数计算的代码
Jul 03 Javascript
基于jquery的划词搜索实现(备忘)
Sep 14 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
解决wx.onMenuShareTimeline出现的问题
Aug 16 Javascript
jquery html5 视频播放控制代码
Nov 06 Javascript
jQuery控制控件文本的长度的操作方法
Dec 05 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
vue实现百度下拉列表交互操作示例
Mar 12 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
ant design vue 表格table 默认勾选几项的操作
Oct 31 Javascript
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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
第八节 访问方式 [8]
2006/10/09 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
js tab 选项卡
2009/04/26 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
基于Django用户认证系统详解
2018/02/21 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
python对csv文件追加写入列的方法
2019/08/01 Python
Python中bisect的使用方法
2019/12/31 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
保荐人的岗位职责
2013/11/19 职场文书
高二地理教学反思
2014/01/24 职场文书
《赶海》教学反思
2014/04/20 职场文书
教师评语大全
2014/04/28 职场文书
小学课外阅读总结
2014/07/09 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers