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