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事件,這樣在雙擊過程當中會取消中途觸發的單擊事件。
相關文章
相關標籤/搜索