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 相关文章推荐
javascript编程起步(第七课)
Jan 10 Javascript
JavaScript 动态添加表格行 使用模板、标记
Oct 24 Javascript
Javascript在IE和FireFox中的不同表现简析
Dec 03 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
浅谈es6 javascript的map数据结构
Dec 14 Javascript
javaScript中的空值和假值
Dec 18 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 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
js打开windows上的可执行文件示例
2014/05/27 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
numpy数组广播的机制
2019/07/12 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
如何理解python中数字列表
2020/05/29 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
双十佳事迹材料
2014/01/29 职场文书
入党自我评价范文
2014/02/02 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
家庭贫困证明
2015/06/16 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
配置nginx负载均衡
2022/05/06 Servers