var click_flag; function onclick(){ click_flag = false; window.setTimeout(function(){ if (!click_flag) { // onclick code } }, 200); } function ondblclick(){ click_flag = true; // ondblclick code; }
在使用input標籤的onclick和ondblclick事件時,會出現雙擊觸發兩次事件的異常狀況。想要得到正常的點擊行爲代碼如上。javascript
原理很簡單,雙擊時會先觸發onclick事件,flag標示當前執行哪一種事件。但onclick事件是延時200ms執行的,在此期間觸發了ondblclick事件,將flag置爲true,onclick事件被跳過。java
不過我以爲應該有成熟的按鈕控件,還要再研究一下,若是有知道的朋友能夠留言,感謝。code