最近項目中遇到了在同一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事件,這樣在雙擊過程當中會取消中途觸發的單擊事件。