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

2019-11-16,,,

本文实例讲述了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.kunjuke.com/table/javascript_event

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript事件相关操作与技巧大全》、《JavaScript页面元素操作技巧总结》、《JavaScript操作DOM技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》

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

您可能感兴趣的文章:

  • vue.js添加一些触摸事件以及安装fastclick的实例
  • vue.js 添加 fastclick的支持方法
  • JavaScript中click和onclick本质区别与用法分析
  • JS中touchstart事件与click事件冲突的解决方法
  • 详解vue.js的事件处理器v-on:click
  • AngularJS的ng-click传参的方法
  • 详解angularJS动态生成的页面中ng-click无效解决办法
  • Angularjs为ng-click事件传递参数
  • JS基于onclick事件实现单个按钮的编辑与保存功能示例
  • JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
  • js原生实现FastClick事件的实例
  • 快速解决js开发下拉框中blur与click冲突
  • Javascript中绑定click事件的四种方式介绍

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

下载本文的Word格式文档,以方便收藏与打印。