onClick 事件 和 onDblClick 事件并存的解决方法

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

<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事件,这样在双击过程当中会取消中途触发的单击事件。
相关文章
相关标签/搜索